Another way to get this error, is if you have duplicate or conflicting ~/.ssh/*
entries. First check what is on your ssh key-chain with:
$ ssh-add -l
2048 SHA256:<hash1> [email protected] (RSA)
2048 SHA256:<hash2> [email protected] (RSA)
2048 SHA256:<hash3> [email protected] (RSA)
As you can see there are two emails which are the same, and easy for you to get confused. Then check your config
file:
$ cat ~/.ssh/config
# GitHub: [email protected]
Host github_ex
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_ex
# GitHub: [email protected]
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
# Bitbucket: [email protected]
Host bitbucket
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/bitbuc
Here you see that you have two different email accounts to github but same HostName
. Someone is bound to get confused, including your git.
To resolve, manually remove (after copying) the (default) files:
cd ~/.ssh
rm id_rsa
rm id_rsa.pub
Now copy back the one you want to use, for example Host github
:
cp -a github id_rsa
cp -a github.pub id_rsa.pub
Then try again.
For some reason, removing keys with ssh-add -d id_rsa
didn't work as expected, as it seem that key-chain is cached.