鴨川のはりねずみ

GitでSSH鍵を指定するとssh-agentと競合する

Git 2.10 以降には sshCommand というオプションがあり, これを指定すればリポジトリ毎に ssh 鍵を指定して pull や push ができます.

ところが手元の環境ではうまくいかず, しばらく調べた結果, ssh-agent と競合しており, 単に ssh 鍵を指定しただけでは ssh-agent に登録されている別の鍵が使用されているとわかりました. その場合, ssh コマンドに -o IdentitiesOnly=yes というオプションを追加すれば解決します.

git config --local core.sshCommand 'ssh -i ~/.ssh/id_rsa -o IdentitiesOnly=yes -F /dev/null'