ssh -A nie włącza poprawnie przekazywania połączenia agenta uwierzytelniania


22

Uwielbiam ssh -A, co pozwala mi używać lokalnego klucza SSH podczas nawiązywania połączenia ze zdalnego serwera. Na przykład ja, ssh -A host1.example.coma następnie stamtąd mogę ssh host2.example.com(lub użyć git) i używa on mojego klucza ssh z oryginalnej maszyny, która w tym przypadku powinna być moim komputerem Mac. Chociaż zawsze działało to dla mnie na Debian / Ubuntu, nie działa na moim nowym komputerze Mac (Lion).

Czego tu brakuje? Jak skonfigurować ssh, aby działał poprawnie z -A? Czy potrzebuję ssh, który nie jest standardowym systemem MacOS?

Odpowiedzi:


33

W rzeczywistości bardzo prosta odpowiedź brzmi: musisz biec

ssh-add

i wtedy wszystko działa.

Zasadniczo w systemie macOS jest już skonfigurowany agent ssh-agent, ale po każdym ponownym uruchomieniu należy do niego dodać klucze. ssh-add daje ssh-agentowi dostęp do twoich kluczy dla bieżącego cyklu rozruchu. Będziesz musiał wprowadzić hasło do swojego klucza prywatnego, jeśli go utworzyłeś.


To rozwiązało mój ostatni problem z przekazywaniem ssh po aktualizacji do systemu macOS (po 5 latach wciąż przydatna odpowiedź, dzięki @rfay)
23tux

To działa, ale niektóre wyjaśnienia, dlaczego byłyby przydatne / pomagają ludziom zapamiętać to polecenie.
Adam Parkin

2
@AdamParkin dodał kolejny akapit wyjaśniający.
rfay

1

Pojęciem ssh -Asą agenci ssh. Działają w tle i za pomocą zmiennych środowiskowych agent może zostać zlokalizowany i automatycznie użyty do uwierzytelnienia podczas logowania do innych komputerów za pomocą ssh. Więcej informacji znajdziesz na stronie ssh-agent.

W systemie Mac OS X agent ssh powinien być uruchamiany na żądanie.

Aby uzyskać więcej informacji zobacz:


1

Począwszy od OS X 10.8, musisz to zrobić raz:

sudo touch /var/db/useLS

I dodaj to jako część ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Uwaga: ten przepis jest częścią moich skryptów beduińskich .


Hm, właśnie to wypróbowałem; agent następnie się uruchamia, ale nadal musisz dodać ssh-add, aby wszystko działało. Tak więc, o ile rozumiem, sam ssh-add jest nadal odpowiedzią. Chyba powinienem dodać go do mojego .bash_profile.
rfay

lol, co jeśli mój klucz prywatny potrzebuje hasła?
Jeffrey04,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.