Wymagana jest dodatkowa konfiguracja do przekazywania dalej agenta ssh?

21

Ten przewodnik świetnie się spisuje wyjaśniając, jak działa ssh-agent w wielu systemach. Chciałbym skonfigurować przekazywanie tak, jak jest to w ostatnim zestawie diagramów, ale mam problem ze śledzeniem kroków wymaganych do tego.

W przypadku niektórych komputerów w mojej sieci mogę ssh od A do B, a następnie od B do C, bez wprowadzania hasła certyfikatu. Inne komputery jednak podają komunikat „Nie można otworzyć połączenia z agentem uwierzytelniającym” (czasami!), A następnie nie przekazują moich informacji uwierzytelniających. SSHing z jednego z tych komputerów do innego urządzenia w sieci ponownie monituje o podanie mojego klucza prywatnego.

Nie zbudowałem tych maszyn, ale mogę zarządzać niektórymi z nich. Nie wiem na pewno, jaka jest różnica między Boxen, które działają, a tymi, które nie działają - może to być problem z zaporą ogniową, konfiguracja ssh / ssh-agent / sshd, cokolwiek, i nie widzę żadnego kroku - szczegółowe instrukcje dotyczące przekazywania unoszące się wokół sieci. Muszę tylko wiedzieć, od czego zacząć ściganie tego problemu.

Coderer
źródło

Odpowiedzi:

23

Przekazywanie agenta SSH musi być dozwolone na kliencie ( ForwardAgentopcja w ~/.ssh/config) i na serwerze ( AllowAgentForwardingopcja w sshd_config). Możliwe, że twoje maszyny mają różne ustawienia domyślne dla jednej lub obu tych opcji.

Jeśli wybierasz A-> B-> C, przekazywanie nie jest konieczne na etapie B-> C (chyba że wybierzesz C-> D, oczywiście).

Po zalogowaniu się do B sprawdź, czy zmienna środowiskowa SSH_AUTH_SOCKjest zdefiniowana. Jego wartość polega na tym, jak sshumie się skontaktować z agentem.

Nie ma żadnego powodu, aby zabraniać przekazywania agentów na serwerze, ponieważ przekazywanie agentów powoduje, że klient jest podatny na działanie serwera, a nie na odwrót, i że w zasadzie można było skonfigurować przekazywanie agentów ręcznie (chociaż od tego nie byłoby sensu trudność jego skonfigurowania pokonałaby wygodę przekazywania agentów).

Gilles „SO- przestań być zły”
źródło
Dobra wiadomość: dziękuję za wskazanie mi właściwego klucza do poszukiwania! Zła wiadomość: Najwyraźniej jest to znany błąd w openssh-server. Wygląda na to, że w pewnym momencie zostało to naprawione, ale nie sądzę, że używam wersji wystarczająco bieżącej - pojawia się komunikat „Zła opcja konfiguracji: Zezwól na przekazywanie dalej”, gdy próbuję ją włączyć. Wygląda na to, że aktualizacja mojego oprogramowania jest wyłączona (ponownie ...)
Coderer
1
@Coderer: Ponieważ przekazywanie agentów jest domyślnie włączone, powinno wystarczyć usunięcie dowolnej AllowAgentForwardinglinii sshd_config.
Gilles „SO- przestań być zły”
@Gilles Jeśli ktoś chciałby ręcznie skonfigurować przekazywanie agentów dla istniejącej sesji, jak by to zrobił? Jest to prawdziwa potrzeba w skryptach wyposażania używanych w efemerycznych maszynach, takich jak AMI, które są dostarczane z AllowAgentForwardingwyłączonymi.
Andrew De Andrade,
@AndrewDeAndrade W przypadku istniejącej sesji praca jest odcięta. Jeśli chciałeś skonfigurować przekazywanie agentów, nawet jeśli jest ono wyłączone na serwerze, musisz przekazać gniazdo unix przez TCP; powinno to być wykonalne przy pomocy netcat lub socat po obu stronach.
Gilles „SO- przestań być zły”
@Gilles Do tego wniosku doszedłem. Dowiedziałem się, że możesz także używać szyfrowania, co jest bezpieczniejsze, ale wymaga symetrycznej wymiany kluczy, ale po tym jest prostsze.
Andrew De Andrade
14

Chociaż masz już poprawną odpowiedź @Gilles powyżej, chciałem zauważyć, że AllowAgentForwardingjest obsługiwany tylko w OpenSSH 5.1 i nowszych .

Serwery OpenSSH przed 5.1, z tego, co widziałem w moim pudełku RHEL 4u5, domyślnie zezwalają na przekazywanie agentów. Jeśli więc serwer jest starszy niż 5.1 i przekazywanie agentów nie działa, problem prawdopodobnie występuje w kliencie ssh. Ponieważ wydaje się, że przekazywanie działa dla niektórych maszyn, wydaje się, że /etc/ssh/ssh_configkonfiguracja jest w porządku. Sprawdź, ~/.ssh/configczy jest jakiś wyjątek, aby wyłączyć przekazywanie agentów dla dotkniętych skrzynek.

Patrz: http://www.openssh.org/txt/release-5.1

Sandip Bhattacharya
źródło
cześć Sandip, masz jakiś pomysł na ten temat? superuser.com/questions/958978/…
Niks