SSH Config を記述するときに *
を使うと冗長な記述をまとめることが出来て便利だが、記述する順番を間違えると意図したとおりに動作しないことがあるので注意が必要。
~/.ssh/config
Host *
User foo
Host example
User bar
HostName example.com
この設定は一見「デフォルトのユーザー名が foo
で、ホストが example のときは bar
というユーザーでログインする」という設定に見えるが、この設定で ssh example
すると ssh foo@example.com
と同じになる。
SSH Config では 先にマッチしたほうが優先される ので、意図したとおりに動作させるには以下のように設定する。
~/.ssh/config
Host example
User bar
HostName example.com
Host *
User foo