コマンドラインで〜/ .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"
}