バージョン管理できる SSH 構成ファイルをリンクすることで、プロジェクト間でサーバー エイリアスを標準化しようとしています。
マシンのエイリアス、IP アドレス、SSH キーをすべて 1 か所 (SSH 構成) で定義できるようにしたいと思います。これは、/bin/ssh
(確か) scp などの SSH ベースのユーティリティでうまく機能します。タブ補完も利用できます。
ただし、ssh 構成でエイリアスを設定すると、そのエイリアスは ping やその他の標準のネットワーク ユーティリティでは使用できなくなります。/etc/hosts を ssh 構成ファイルと同期させておく必要はありません。
どちらかの方法はありますか?
/etc/hosts
sshエイリアスを、? または のように自動的に動作させるには- アクティブな 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する