GithubアカウントのSSH接続鍵を使い分ける

設定

SSHのconfigで別のHostを用意し、別の鍵を指定する

$ cat ~/.ssh/config
Host github.com
  Hostname github.com
  User git
  IdentitiesOnly yes
  IdentityFile ~/.ssh/github

Host hoge.github.com
  Hostname github.com
  User git
  IdentitiesOnly yes
  IdentityFile ~/.ssh/hoge/github

Hostnamegithub.comのままで、Host だけ別名に変えます

接続

あとはremoteのurlに hoge.github.com を使用すればOK

例としてhttps://github.com/tjmmm/DotFilesをcloneする場合をあげます

Host【github.com】に使用した鍵を使ってclone

git clone git@github.com:tjmmm/DotFiles.git

Host 【hoge.github.com】に使用した鍵を使ってclone

git clone git@hoge.github.com:tjmmm/DotFiles.git

既にリポジトリがある場合は git remote set-url を使って書き換える、origin以外のurlを追加する等でも良いと思います!

なぜこんなことを?

Q: こんなのわざわざする必要あるの?
A: 事情があれば別アカウントを使用しなければならないこともあります。ありますよね、プライベートリポジトリの権限もらったりするのにアカウントがわけられてしまうとかね。(少し悲しい)

Q: 接続先の設定にSSHのconfig使うのは当たり前じゃないですか?
A: よく別ドメインのために設定したりはしてましたけど、同じドメインでも使えるじゃんみたいなのを完全に見落としてました、ということですやめやめ!!!

以上です

お疲れ様でした!