Agenda
環境
やや特殊なことをしていて、SSHキーを ~/.ssh には格納していなくて、ファイルサービスのBoxにSSHキーファイルをアップしている。
何のサービスがどのSSHキーを参照するかは、 ~/.ssh/config で設定できるため、そこでBoxのURL(~/Box/.ssh)を記載していた。
(Box DriveというWebDavを利用しているため、マウントされているようなものなので、ローカルパスのSSHキーを記載)
現象
SourceTreeで非公開リポジトリのGitHub(SSH認証)にプッシュすると以下のエラー。
Pushing to git@github.com:mokuji-ya/docker-rails-api.git
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
原因
$ ssh -vT git@github.com コマンドで、どのSSHキーを参照しているのか確認すると、 ~/.ssh/id_rsa を参照していることがわかった。
でも本物は、 ~/Box/.ssh/id_rsa になっているので参照先が誤っている。
対策
MacだとSourceTreeのSSHキーの参照先を変更できないようで、 ~/.ssh/id_rsa を強制的に参照してしまうようだった。なお、Windowsだと参照先の変更が可能。
やむをえないため、 ~/Box/.ssh/id_rsa を ~/.ssh/id_rsa にコピペして解決。
備考
接続確認は $ ssh -T git@github.com のコマンド。