GitHubで複数アカウントを使うときの鍵の設定

メモ。何の因果かGitHub上で、一人で複数のアカウントを使い分けたくなったときのための方法。

githubではSSHの鍵をアカウントと紐つけて管理します。だもんで、複数のアカウントを使い分けたいときには、それぞれのアカウント用に複数の公開鍵と秘密鍵を作って、それぞれ設定します。

ところが .ssh/config にIdentityFileを設定する場合、基本的にホスト名別で設定します。github用なら「Host github.com」とか書いたところにIdentityFileの設定を書くことになります。つまり、github用には一つの設定しかないわけですね。そのため、同じクライアントマシン・アカウント上で、単純に git push origin master とかやっても、どっちのアカウントだか分からないわけで。gitのconfigをいじればなんとかなるかなあ、と試してみたのですが、駄目でした。

そこで調べた見たところでは、./ssh/config には一つのホストに複数の鍵が設定できるとのことでした。こんな風に書きます。

Host github.com
 IdentityFile ~/.ssh/some_id.ppk
 IdentityFile ~/.ssh/another_id.ppk

こうすると、some_id.ppkと紐ついてないアカウントの場合、自動的にanother_id.ppkでリトライされ、結果として普通にpushできるようです。