버전 제어를 유지할 수 있는 SSH 구성 파일을 함께 연결하여 프로젝트 전체에서 서버 별칭을 표준화하려고 합니다.
IP 주소 및 SSH 키와 함께 시스템 별칭을 모두 한 곳(ssh 구성)에서 정의할 수 있기를 바랍니다. 이것은 scp 및 (내 생각에는) ssh 기반 유틸리티와 잘 작동합니다 /bin/ssh
. 탭 완성 기능도 제공됩니다.
그러나 SSH 구성에 별칭을 설정하면 ping 및 기타 바닐라 네트워크 유틸리티에 별칭을 사용할 수 없습니다. /etc/hosts를 SSH 구성 파일과 동기화된 상태로 유지하고 싶지 않습니다.
둘 중 하나에 대한 방법이 있나요
- SSH 별칭이 마치 에 있는 것처럼 자동으로 작동하도록 하시겠습니까
/etc/hosts
? 또는 - 활성 SSH 구성을 별칭 소스로 사용하는 네트워크 유틸리티 제품군을 찾으십니까?
답변1
나는 정확히 그것을 수행하고 예를 들어 .bashrc
.
원본을 호출하기 전에 의 마지막 인수(호스트)를 대체 ping
하고 조회합니다. 즉, 에서 일치하는 IP/호스트 이름이 어디에 있는지 호출합니다 . 마지막 인수와 일치하는 호스트가 파일에서 발견되지 않으면 원래 값이 표준과 마찬가지로 사용됩니다 ..ssh/config
/bin/ping
ping -c 2 <host>
/bin/ping -c2 <hostname>
<hostname>
.ssh/config
ping
ping()
{
# Process args
local i=0
local options=""
local host=""
for arg
do
i=$(($i+1))
if [ "$i" -lt "$#" ]
then
options="${options} ${arg}"
else
host="${arg}"
fi
done
# Find host
local hostname=$(awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"${host}\" {print \$2}" "$HOME/.ssh/config")
if [ -z "$hostname" ]
then
hostname="$host"
fi
# Run ping
/bin/ping $options $hostname
}
답변2
pip3 sshping 설치
그런 다음 sshping 호스트 이름