OpenSSH - ~/.ssh/configのエイリアスをコマンドラインのIPアドレスにマッピングする

OpenSSH - ~/.ssh/configのエイリアスをコマンドラインのIPアドレスにマッピングする

コマンドラインから〜/.ssh/configを照会できますか?別のプログラムで特定の別名が指すIPアドレスを検索したいとします。これは可能ですか?

答え1

IPアドレス(192.168.1.1)のみを返したい場合は、ファイルを読み取るための適切な権限があると仮定して、コマンドラインからファイルを照会する(非常に脆弱な)方法です。そして形式.ssh/configが一貫しています。

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


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

答え2

何を尋ねるのかわかりません...

「mainserver」のSSHエイリアスがあると仮定すると、次のことができますssh mainserver。この機能も機能させるには、次のping mainserverエイリアスを追加する必要があります。/etc/hosts

/etc/ホスト:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

その後、これを行うping mainserverと、192.168.0.20でpingが発生します。

答え3

-Gこのオプションを使用できますssh

-Gssh評価後、設定を印刷、ブロック、Host 終了Matchします。

したがって、この例では

ssh -G $host | awk '$1 == "hostname" { print $2 }'

ホスト名ではなくIPアドレスが本当に必要な場合は、結果で名前検索を実行する必要があるかもしれませんが、これを行う方法を知っているとします。

ProxyCommandたとえば、構成がジャンプホストを介して接続するようになっている場合、それは発信接続が行われる実際のホストではない可能性があります。

答え4

あなたが言ったファイルは、以下を含むテキストファイルです。CPU名そして可能ですIPアドレス接続されているマシンを識別します。このコマンドを使用して、ホスト名をIPアドレスに解決できますhost(1)。形式が非常に単純で、内容を把握することは難しくありません。ファイル(my States *.fedoraproject.org)でワイルドカードを使用できます。

関連情報