Na moim komputerze z systemem MacOSX mam to w ~ / .ssh / config
Host *
ForwardAgent yes
Host b1
ForwardAgent yes
b1 to maszyna wirtualna z systemem Ubuntu 12.04. Przesyłam to w następujący sposób:
ssh pupeno@b1
i jestem zalogowany bez pytania o hasło, ponieważ już skopiowałem swój klucz publiczny. Ze względu na przekazywanie, powinienem być w stanie ssh do pupeno @ b1 z b1 i powinien on działać bez pytania o hasło, ale nie działa. Prosi mnie o hasło.
czego mi brakuje?
To jest pełne wyjście drugiego ssh:
pupeno@b1:~$ ssh -v pupeno@b1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to b1 [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/pupeno/.ssh/id_rsa type -1
debug1: identity file /home/pupeno/.ssh/id_rsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_dsa type -1
debug1: identity file /home/pupeno/.ssh/id_dsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 35:c0:7f:24:43:06:df:a0:bc:a7:34:4b:da:ff:66:eb
debug1: Host 'b1' is known and matches the ECDSA host key.
debug1: Found key in /home/pupeno/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pupeno/.ssh/id_rsa
debug1: Trying private key: /home/pupeno/.ssh/id_dsa
debug1: Trying private key: /home/pupeno/.ssh/id_ecdsa
debug1: Next authentication method: password
pupeno@b1's password:
ubuntu
ssh
mac-osx
forwarding
pupeno
źródło
źródło
ssh-add -K
dotyczy tylko OS X.Sprawdź, czy twoje
./ssh/id_rsa .ssh/id_dsa
.ssh/id_ecdsa
pliki mają odpowiednie uprawnienia, które powinny być własnością użytkownika i być chmoded 600.Sprawdź, czy masz poprawny klucz publiczny
pupeno/.ssh/authorized_keys
na b1 i sprawdź, czyauthorized_keys
ma przerwanie linii na końcu klucza.Sprawdź, czy masz uruchomionego agenta ssh, spróbuj załadować klucze przez
ssh-add
Wypróbuj uwierzytelnianie i przekazywanie oparte na GSSAPI
ssh -K
źródło
Miałem problem z odrzuceniem przez serwer sshd żądania przekazania agenta z powodu braku miejsca w / tmp. Stało się tak, ponieważ sshd musi utworzyć gniazdo w / tmp. Czyszczenie dysku rozwiązało mój problem.
ssh -v powiedział wtedy:
źródło
Innym możliwym powodem jest udostępnianie połączenia: jeden może być już zalogowany na drugim hoście bez przekazywania agenta i udostępniania połączenia. Drugie logowanie za pomocą
ssh -A
(lub równoważnie określonego w pliku konfiguracyjnym) za pośrednictwem połączenia współużytkowanego po cichu zignoruje-A
flagę. Przekazywanie agentów będzie działać dopiero po całkowitym wylogowaniu lub wyłączeniu udostępniania połączenia dla drugiego logowania.źródło
Z korzyścią dla innych pracowników Google, którzy również doszli do tego pytania:
Niepoprawne białe znaki w pliku ~ / .ssh / config mogą również powodować drapanie głowy.
Niedawno pomogłem jednemu z moich współpracowników, który miał to:
zamiast tego:
Natknąłem się również na przypadki, w których brakujące wcięcia dyrektyw na liście hostów wpłynęły na funkcjonalność, nawet jeśli nie powinno.
źródło
Dodaj następujące wiersze do pliku .ssh / config
Dodaj klucz do agenta SSH
Połącz ze zdalnym serwerem
Uruchom test połączenia z GitHub
Uruchom zdalny test ls na docelowym repozytorium git
źródło