SourceTreeでGitHubにプッシュするとPermission denied (publickey)

環境

やや特殊なことをしていて、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 のコマンド。