None of these solutions worked for me.
Instead, I elaborate on @Martin v. Löwis ‘s mention of setting a config
file for SSH.
SSH will look for the user’s ~/.ssh/config
file. I have mine setup as:
Host gitserv
Hostname remote.server.com
IdentityFile ~/.ssh/id_rsa.github
IdentitiesOnly yes # see NOTES below
And I add a remote git repository:
git remote add origin git@gitserv:myrepo.git
And then git commands work normally for me.
git push -v origin master
NOTES
- The
IdentitiesOnly yes
is required to prevent the SSH default behavior of sending the identity file matching the default filename for each protocol. If you have a file named~/.ssh/id_rsa
that will get tried BEFORE your~/.ssh/id_rsa.github
without this option.
References
- Best way to use multiple SSH private keys on one client
- How could I stop ssh offering a wrong key