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.

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).


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


cześć Sandip, masz jakiś pomysł na ten temat? superuser.com/questions/958978/…
— Niks
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.