コマンドラインで〜/ .ssh / configをクエリすることは可能ですか?特定のエイリアスが別のプログラムで指しているIPアドレスを取得したいとします。それは可能ですか?
コマンドラインで〜/ .ssh / configをクエリすることは可能ですか?特定のエイリアスが別のプログラムで指しているIPアドレスを取得したいとします。それは可能ですか?
回答:
IPアドレス、つまり192.168.1.1のみを返してほしいと理解している場合、これはコマンドラインからファイルをクエリする1つの(非常に脆弱な)方法です。ただし、適切な読み取り権限があり、.ssh/config
一貫してフォーマット済み:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
これを使用する方法を理解したいので、私はこれを投稿awk
していますが、私の知識は明らかに非常に限られています。
あなたが何を求めているのか完全にはわかりません...
'mainserver'のSSHエイリアスがあるとしましょうssh mainserver
。でも動作ping mainserver
するようにするには/etc/hosts
、次のようにエイリアスをに配置する必要があります。
/ etc / hosts:
192.168.0.1 comp-one
192.168.0.2 comp-two
192.168.0.20 mainserver
その後、あなたはそうすることができping mainserver
、それは192.168.0.20にpingします。
これは、取得の少しより堅牢な方法であるHostName
に基づいてHost
中.ssh/config
のファイル。
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}