man ページには次のように書かれています:
ホスト
Host 以降の宣言 (次の Host キーワードまで) を、キーワードの後に指定されたパターンの 1 つに一致するホストのみに制限します。複数のパターンを指定する場合は、空白で区切る必要があります。パターンとして 1 つの `*' を使用すると、すべてのホストにグローバル デフォルトを提供できます。ホストは、コマンド ラインで指定されたホスト名引数です (つまり、名前は一致前に正規化されたホスト名に変換されません)。
パターン エントリは、感嘆符 (`!') を前に付けることによって否定できます。否定されたエントリが一致した場合、行内の他のパターンが一致するかどうかに関係なく、ホスト エントリは無視されます。したがって、否定された一致は、ワイルドカード一致の例外を提供するのに役立ちます。>
パターンの詳細については、「パターン」を参照してください。
ホスト名
HostName ログインする実際のホスト名を指定します。これは、ホストのニックネームまたは省略形を指定するために使用できます。ホスト名に文字シーケンス `%h' が含まれている場合、これはコマンドラインで指定されたホスト名に置き換えられます (これは、修飾されていない名前を操作する場合に便利です)。デフォルトは、コマンドラインで指定された名前です。数値 IP アドレスも許可されます (コマンドラインと HostName 仕様の両方で)。
たとえば、GitHub 用の SSH Config を作成する場合、Host と HostName はそれぞれ何にすればよいでしょうか?
答え1
github.comの場合は~/.ssh/config
次のようになります
Host github.com
IdentityFile ~/.ssh/key_name_for_github
ホスト名の場合: man が言うように、ホストの省略形を指定できます。たとえば、~/.ssh/config
次のようになります
Host host1
HostName host1.example.com
Host host2
HostName anotherdomain.com
次に入力すると
ssh host1
実際にログインするホスト1.example.comssh host2
ログイン別のドメイン
答え2
簡単な使用法:
Host
実際のホスト名であり、HostName
または
Host
はホストのニックネームで、HostName
は実際のホスト名です。
簡単な例:
$ cat ~/.ssh/config
Host dev
Hostname <hostname>
User <username>
IdentityFile <path_to_private_key>
$ ssh dev
# Equivalent to "ssh -i <path_to_private_key> <username>@<hostname>"
注: マニュアル ページは技術的には正しいのですが、少し言葉遣いがおかしなだけです。わかりやすくするために、もう少し言葉を追加したいと思います。HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.
答え3
最近、ホストとホスト名を使って何かしたいと思ったのですが、正確な構文を忘れてしまいました... しかし、それについてグーグルで検索しても混乱し、マニュアルページもあまり役に立ちませんでした。そこで、同じニーズを持つ人がいると仮定して、私のヒントを紹介します。
Host はコマンド ライン引数を指定します。これは、a) 実際のホスト名/IP、b) 省略形、c) 別名として考えることができます。HostName は、接続先のマシンの実際のホスト名/IP です。HostName フィールドでは、コマンド ラインで指定するホスト名文字列として %h を使用できます。(これは、私の例で使用したい部分です。)
たとえば、ホスト名が my-proj-host-... で始まり、ドメイン .my.proj.domain.com にあるホストのセットがあり、特定の SSH キー my-proj-id-rsa と特定のユーザー ID my-proj-user を使用してログインする必要がある場合、作業を簡単にするために、次のコードを ~/.ssh/config ファイルに追加します。
ホスト my-proj-host*
ホスト名 %h.my.proj.domain.com
ユーザー my-proj-user
アイデンティティファイル ~/.ssh/my-proj-id-rsa
今、私は入力することができます
ssh my-proj-host-1234
設定がなければ、それは
ssh -i ~/.ssh/my-proj-id-rsa[メールアドレス]
入力(およびタイプミス)を少し節約できます。