Допустим, у меня есть ключ для Github и другие ключи. Я добавил много ключей к моему ssh-агенту ( ssh-add -L
возвращает много строк) на моем домашнем компьютере A. В моем, .ssh/config
я установил, какой ключ использовать с каким хостом, например,
ssh -T -vvv git@github.com 2>&1 | grep Offering
дает
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Как и ожидалось, предлагается только один ключ. Но затем, подключившись к некоторому хосту B ForwardAgent yes
и повторив ту же команду, я получаю
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
значит, он пробует все мои ключи. Это проблематично, поскольку перед возвратом серверов можно попробовать только ограниченное количество ключей Too many authentication failures
. Поэтому я попытался изменить .ssh/config
на хосте B, чтобы включить
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
но тогда я не получаю никаких ключевых предложений, а скорее
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
что, по-моему, означает, что ключ не был найден (?) И, в конце концов, ключ находится на моем домашнем компьютере A, а не на хосте B, поэтому вопрос в том, как обратиться к нему на хосте B? Надеюсь, мне удалось объяснить вопрос.