~/.ssh/configの書き順

表題の件について。

■ 環境

  • Mac OSX El Capitan
  • Linux

■ ~/.ssh/config

`ssh`でログインする対象が多いので`~/.ssh/config`ファイルにいろいろホスト情報等を書いているのだが、書く順番を考えないと設定を間違えてしまうことがあるので気をつける必要がある。自身が気をつけている点は下記の通りである。

  1. 重要なホストを先に書く
  2. 共通設定は後で

以下詳細を少しだけ。

■ 重要なホストを先に書く

同じ設定項目が重複で書かれている場合、先に書いた設定が優先される。例えば下記の`User`の項目である。

Host test1
  User ubuntu
Host test*
  User ec2-user

test1“ホストに`ssh`でアクセスする場合に、まずは上に記述されている`User ubuntu`が設定される。続いて”test*”にも合致するので`User ec2-user`も設定しようとするが、既に`User`は設定されるので無視される。この特徴から重要なホストは先に書くようにしている。つまりはプロダクション環境を先に。後からステージング環境等を書くようにしている。

■ 共通設定は後で

既に前述のところに書いてしまっているが、ワイルドカード等で共通項目を設定する場合には最後に書くようにしている。全てのホストが対象であったり、一部の名前をワイルドカートで書いている、という場合には、その集合の最後に書くようにしている。後に書く理由は前述の通りである。

以上。