Let's say I have a key for Github, along with other keys. I've added lots of keys to my ssh agent (ssh-add -L
returns lots of lines) at my home computer A. In my .ssh/config
I have set up which key to use with which host, so e.g.
ssh -T -vvv git@github.com 2>&1 | grep Offering
gives
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Only one key is offered, as expected. But then ssh-ing to some host B with ForwardAgent yes
and repeating the same command, I get
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.linode2
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.helium
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
meaning it tries all my keys. This is problematic since only a limited number of keys can be tried before servers return Too many authentication failures
. So I tried editing .ssh/config
on host B to include
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
but then I get no key offerings, but rather
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
which I guess means that the key was not found(?) And after all, the key is located at my home computer A, not host B, so the question is how to refer to it at host B? Hope I managed to explain the question.