Digamos que eu tenha uma chave para o Github, junto com outras chaves. Adicionei muitas chaves ao meu agente ssh ( ssh-add -L
retorna muitas linhas) no meu computador doméstico A. No meu .ssh/config
, configurei qual chave usar com qual host, por exemplo,
ssh -T -vvv git@github.com 2>&1 | grep Offering
dá
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Apenas uma chave é oferecida, conforme o esperado. Mas, depois de fazer o ssh para algum host B ForwardAgent yes
e repetir o mesmo comando, recebo
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
ou seja, tenta todas as minhas chaves. Isso é problemático, pois apenas um número limitado de chaves pode ser tentado antes do retorno dos servidores Too many authentication failures
. Então, eu tentei editar .ssh/config
no host B para incluir
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
mas não recebo ofertas importantes, mas sim
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
o que eu acho que significa que a chave não foi encontrada (?) E, afinal, a chave está localizada no meu computador doméstico A, não no host B, então a questão é como se referir a ela no host B? Espero ter conseguido explicar a pergunta.