ssh 設定 (/etc/hosts の代わりに) のエイリアスを使用してサーバーに ping するユーティリティはありますか?

ssh 設定 (/etc/hosts の代わりに) のエイリアスを使用してサーバーに ping するユーティリティはありますか?

バージョン管理できる SSH 構成ファイルをリンクすることで、プロジェクト間でサーバー エイリアスを標準化しようとしています。

マシンのエイリアス、IP アドレス、SSH キーをすべて 1 か所 (SSH 構成) で定義できるようにしたいと思います。これは、/bin/ssh(確か) scp などの SSH ベースのユーティリティでうまく機能します。タブ補完も利用できます。

ただし、ssh 構成でエイリアスを設定すると、そのエイリアスは ping やその他の標準のネットワーク ユーティリティでは使用できなくなります。/etc/hosts を ssh 構成ファイルと同期させておく必要はありません。

どちらかの方法はありますか?

  1. /etc/hostssshエイリアスを、? または のように自動的に動作させるには
  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する

関連情報