SSHで複数の鍵を管理する

SSHで鍵やユーザ名を複数のホストで使い分けないといけないときは結構面倒です。 ホスト毎の設定は「~/.ssh/config」で設定できます。

管理方法


以下の方法で管理します。

  • 鍵毎にprefixやsuffixをつける
  • sshのconfigにホスト毎に設定をつける

因みに、鍵がわかれば鍵ファイル名はなんでもいいです。

configの記載


以下のような形で記載します。

1
2
3
4
5
6
7
8
9
10
11
12
Host github.com
    HostName        github.com
    IdentityFile    ~/.ssh/github_id_rsa
    User            git
    TCPKeepAlive    yes
    IdentitiesOnly  yes
Host hogehoge
    HostName        hogehoge
    Port            12345
    IdentityFile    ~/.ssh/hogehoge_id_rsa
    User            hogehoge
    Protocol        2

各項目は以下の内容を設定しています。

設定項目 設定値
Host 次のHostキーワードが現れるまでの項目が1つの設定項目にする
HostName ログイン先のホスト名
IdentityFile SSHの鍵ファイル
User ログインするユーザー名
TCPKeepAlive 持続的接続
IdentitiesOnly IdentityFileを利用する場合に設定する
Port ポート番号
Protocol SSHのプロトコル指定

githubへのログインの場合は、上記の内容を記載します。

接続確認


以下のコマンドで確認します

1
$ssh -T <Host>

例えば、上記のconfigに設定したgithubへのアクセスは以下で確認します。

1
$ssh -T github.com

これで、「You’ve successfully authenticated」が出れば成功です。

以上で複数の鍵を管理できますね。