ssh が設定でサーバー名を使用していない

ssh が設定でサーバー名を使用していない

コマンドを使用してリモート SSH サーバーに接続するための設定を作成しようとしていますssh <server short name>。これを次のように入力します~/.ssh/config

Host <server short name> <server full name>
    Host <server full name>
    User <my username on the remote server>
    Port 22022
    ForwardAgent yes
    ForwardX11 yes

接続するには

$ ssh <server full name>

しかし、コマンドでは失敗する

$ ssh <server short name>
ssh: Could not resolve hostname <server short name>: Name or service not known

スペルを何度か確認しましたが、間違いは見つかりませんでした。2 番目のコマンドが失敗する理由について何か考えはありますか?

答え1

Hostは SSH オプションとは異なります。インデント レベルに関係なく、常に新しいセクションが開始されます。したがって、2 つの構成セクションがあります。1 つは に一致する空のセクション<shortname> <fullname>、もう 1 つは にのみ一致するセクションです<fullname>

代わりに、2 行目は である必要がありますHostName <fullname>

答え2

を参照してくださいマニュアルページ

キーワードhostは設定をグループ化するために使用され、ホストのエイリアスを定義したり、複数のホストを一度に設定したりするためにも使用できます。

次のシナリオを考えてみましょう: 職場に dev.example.com と test.example.com という 2 つのサーバーがあり、同じキー ペアと 2 番目のキー ペアを持つ github アカウントを使用しています。次の構成を設定できます。

host *.example.com
identityfile ~/.ssh/work-key
user bob
Port 22022
ForwardAgent yes
ForwardX11 yes

host github.com
identityfile ~/.ssh/github-key

host dev
hostname dev.example.com

host test
hostname test.example.com

そして、接続には次のようなものを使用します。

ssh dev

関連情報