/etc/hosts 대신 SSH 구성의 별칭을 사용하여 서버를 ping하는 유틸리티가 있습니까?

/etc/hosts 대신 SSH 구성의 별칭을 사용하여 서버를 ping하는 유틸리티가 있습니까?

버전 제어를 유지할 수 있는 SSH 구성 파일을 함께 연결하여 프로젝트 전체에서 서버 별칭을 표준화하려고 합니다.

IP 주소 및 SSH 키와 함께 시스템 별칭을 모두 한 곳(ssh 구성)에서 정의할 수 있기를 바랍니다. 이것은 scp 및 (내 생각에는) ssh 기반 유틸리티와 잘 작동합니다 /bin/ssh. 탭 완성 기능도 제공됩니다.

그러나 SSH 구성에 별칭을 설정하면 ping 및 기타 바닐라 네트워크 유틸리티에 별칭을 사용할 수 없습니다. /etc/hosts를 SSH 구성 파일과 동기화된 상태로 유지하고 싶지 않습니다.

둘 중 하나에 대한 방법이 있나요

  1. SSH 별칭이 마치 에 있는 것처럼 자동으로 작동하도록 하시겠습니까 /etc/hosts? 또는
  2. 활성 SSH 구성을 별칭 소스로 사용하는 네트워크 유틸리티 제품군을 찾으십니까?

답변1

나는 정확히 그것을 수행하고 예를 들어 .bashrc.

원본을 호출하기 전에 의 마지막 인수(호스트)를 대체 ping하고 조회합니다. 즉, 에서 일치하는 IP/호스트 이름이 어디에 있는지 호출합니다 . 마지막 인수와 일치하는 호스트가 파일에서 발견되지 않으면 원래 값이 표준과 마찬가지로 사용됩니다 ..ssh/config/bin/pingping -c 2 <host>/bin/ping -c2 <hostname><hostname>.ssh/configping

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 호스트 이름

관련 정보