Powiedzmy, że mam klucz do Github wraz z innymi kluczami. Dodałem wiele kluczy do mojego agenta ssh ( ssh-add -L
zwraca wiele wierszy) na moim komputerze domowym A. W moim .ssh/config
ustawiłem, który klucz ma być używany z którym hostem, więc np.
ssh -T -vvv git@github.com 2>&1 | grep Offering
daje
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Zgodnie z oczekiwaniami oferowany jest tylko jeden klucz. Ale potem przesyłam wiadomość do hosta B ForwardAgent yes
i powtarzam to samo polecenie
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
co oznacza, że próbuje wszystkich moich kluczy. Jest to problematyczne, ponieważ tylko ograniczona liczba kluczy może zostać wypróbowana przed powrotem serwerów Too many authentication failures
. Próbowałem więc edytować .ssh/config
na hoście B, aby uwzględnić
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
ale wtedy nie otrzymuję żadnych kluczowych ofert, ale raczej
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
co, jak sądzę, oznacza, że klucz nie został znaleziony (?) A w końcu klucz znajduje się na moim komputerze domowym A, a nie na hoście B, więc pytanie brzmi, jak się do niego odnosić na hoście B? Mam nadzieję, że udało mi się wyjaśnić pytanie.