読者です 読者をやめる 読者になる 読者になる

~/.ssh/config で簡単に複数ホストへのSSH接続を管理する

ssh Linux

ssh で鍵やユーザ名を複数のホストで使い分けないといけない場合、それら設定を覚えておくのは面倒です。
それらホスト毎の設定は ~/.ssh/config で簡単に管理することができます。

複数の鍵を管理する場合

identity, id_rsa などのファイル名で保存しますが、これでは複数の鍵を置くことができないので、
test.org の場合、「id_rsa.test.org」
hoge.in の場合、「id_rsa.hoge.in」
など、ホスト名や用途名の prefix, suffix を付けて管理しています。
どの鍵をどのような用途で利用しているのかが分かればファイル名は何でも構いません。

~/.ssh/configを記述する

Host test.org
    HostName        test.org
    IdentityFile    ~/.ssh/id_rsa.test.org
    User            test_user
Host hoge.in
    HostName        hoge.in
    Port            22222
    IdentityFile    ~/.ssh/identity
    User            hoge_use
    Protocol        1
  • Host

これ以後の (次の Host キーワードが現れるまでの) 項目を、一つの設定とします。

  • HostName

実際にログインするホスト名を指定します。

  • Port

ポート番号を指定します。

  • IdentityFile

そのホストで使用する秘密鍵を指定します。

  • User

ユーザ名を指定します。

  • Protocol

利用する ssh バージョンを指定します (1, 2)

ssh 接続する

~/.ssh/config の Host で指定した名前を使用します。

$ ssh test.org

鍵、ユーザ名、ssh バージョンなどを使い分けなければならない場合にとても便利です。
また、svn, git, scp, sftp などでの利用でも反映されるため、オプションを覚える必要がなくなります。