OpenSSH-〜/ .ssh / configのエイリアスをコマンドラインのIPアドレスにマップ


9

コマンドラインで〜/ .ssh / configをクエリすることは可能ですか?特定のエイリアスが別のプログラムで指しているIPアドレスを取得したいとします。それは可能ですか?

回答:


2

IPアドレス、つまり192.168.1.1のみを返してほしいと理解している場合、これはコマンドラインからファイルをクエリする1つの(非常に脆弱な)方法です。ただし、適切な読み取り権限があり.ssh/config一貫してフォーマット済み:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


これを使用する方法を理解したいので、私はこれを投稿awkしていますが、私の知識は明らかに非常に限られています。


1

あなたが何を求めているのか完全にはわかりません...

'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します。


0

これは、取得の少しより堅牢な方法であるHostNameに基づいてHost.ssh/configのファイル。

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}

-1

あなたが言及するファイルはテキストファイルであり、それにはあなたが接続するマシンを識別するためのホスト名とおそらくIPアドレスが含まれていますhost(1)コマンドを使用して、ホスト名をIPアドレスに解決できます。形式は非常にシンプルなので、そこに何があるかを見つけるのはそれほど難しくありません。ファイルではワイルドカードを使用できることに注意してください(私の状態*.fedoraproject.org)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.