ssh 構成ファイルでは、「Host」をパラメータとして使用できますか? そうでない場合、ssh 構成ファイルがパラメータを受け入れるようにするにはどうすればよいですか?

ssh 構成ファイルでは、「Host」をパラメータとして使用できますか? そうでない場合、ssh 構成ファイルがパラメータを受け入れるようにするにはどうすればよいですか?

.ssh/config ファイル内

シナリオとしては、現在 2 つのパブリック IP (動的) があり、1 つは AWS に接続し、もう 1 つはラックスペースに接続しています。

どちらも接続するには異なるpemキーが必要です。しかし、時間を節約するためにssh設定ファイルを使用したいと思います。

Host <ip1> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/aws.pem

Host <ip2> 
User root
Port 22
HostName %h
IdentityFile ~/.ssh/rackspace.pem

この設定では、どの pem ファイルを使用するか区別できません。パラメータの一部としてホストを使用して、接続するサーバーを指定します (例: ssh aws-ip1 ssh rack-ip2)。

すると、設定ファイルはどのpemファイルを使用するかを区別できるようになります。

誰かこれをどうやってやるか知っていますか?

答え1

わかりました... この質問は非常に古いです。しかし、このようなシナリオで役立つ方法が思いつきました。ここではワイルドカード (*) と %h パラメータを使用します。

Amazon の IP が 10.10.20.*、Rackspace の IP が 20.20.10.* であると仮定します。次の設定が役立ちます。

Host 10.10.20.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/aws.pem

Host 20.20.10.*
    Hostname %h
    User root
    IdentityFile ~/.ssh/rackspace.pem

そして、 を呼び出すと、ssh 10.10.20.5のようなものが呼び出されますが、これこそがまさに必要なことかもしれません。ssh -i ~/.ssh/aws.pem [email protected]

答え2

「ホスト」部分は、使用できる一種の「ショートカット」です。

Host aws-ip1
    HostName ip-or-name-to-ip1
    IdentityFile ~/.ssh/aws.pem

Host rack-ip2
    HostName ip-or-name-to-ip2
    IdentityFile ~/.ssh/rackspace.pem

そして、ssh aws-ip1またはを使用するだけですssh rack-ip2...

引用元man ssh-config:

Host    Restricts the following declarations (up to the next Host key-
        word) to be only for those hosts that match one of the patterns
        given after the keyword.

答え3

もう 1 つのオプションは、昔ながらの単純なシェル エイリアスを使用することです。

 alias ssh_rack="ssh -i .ssh/rackspace.pem"
 alias ssh_aws="ssh -i .ssh/aws.pem"

代わりにそれらを使用しますssh

関連情報