クローンする場合、git clone git@github.com:OWNER/REPOSITORY.git とやるわけだけど、使用する証明書を切り替えたい場合の一工夫。
~/.ssh/config*1 で以下のように定義してやると、
git clone git@USER1:OWNER/REPOSITORY.git / git clone git@USER2:OWNER/REPOSITORY.git という感じで証明書を切り替えてクローンが可能。
host USER1
HostName github.com
User git
identityfile “~\.ssh\USER1_id_ecdsa”
host USER2
HostName github.com
User git
identityfile “~\.ssh\USER2_id_ecdsa”
TortoiseGit 等の GUIラッパーを使う場合もリモートリポジトリの URL自体切り替えて cloneしてやれば Puttyに依存しないでいけるかとも思ったけど、そうもいかず。
コミットは問題ないので、pull/pushだけ「git push git@USER1:OWNER/REPOSITORY.git」的なバッチファイルを組んで誤魔化す。
最終的には面倒になってリポジトリ毎に collaboratorsを登録するように。
それだけだとテレワークで仕事のリポジトリをいじるときでもプライベートのアカウントでプッシュされてしまうので、ローカルの configをいじって user/emailを設定してやることで仕事用のアカウントでプッシュされるように。*2