Macの.ssh/configでIncludeを使う時は順番が重要




Macの.ssh/configにいろんな設定が増えてきて管理しずらくなってきたのでファイルを分割しようと考えました。
そうするとIncludeで簡単にできるという情報があり、ChatGPTやGeminiでも同じ回答を得たので実践してみましたが。。。
Includeの設定場所で動く動かないがありめちゃくちゃはまったのでまとめておきます。
実はこれ数回試そうとしたのですがうまくいかず、今日時間を取って徹底的に調べて解決した内容になります。

結論

まずは結論ですが、他のHost設定よりも前にIncludeを記述することを注意するだけです。

configファイルへの設定で有効な設定と無効な設定を以下にまとめます。

有効な設定

Include /path/to/file  ←別のHost設定より前に書いておくと反映される

Host example.com
    HostName example.com
    Port 22
    User user_name
    IdentityFile /path/to/key

こんな感じでIncludeを複数並べてもOK。

Include /path/to/file
Include /path/to/file
Include /path/to/file

Host example.com
    HostName example.com
    Port 22
    User user_name
    IdentityFile /path/to/key

無効な設定

Host example.com
    HostName example.com
    Port 22
    User user_name
    IdentityFile /path/to/key

Include /path/to/file  ←別のHost設定より後に書いておくと反映されない

残念ながらどういう仕様でこのような挙動になるんかを調べることができませんでした。
あまり時間を使いすぎるわけにも行かないので、後日時間ができたときに調べてみようと思います。