Do czego służy host pośredniczący
Host pośredniczący, nazywany też bastionem, to serwer, z którym możesz połączyć się bezpośrednio i który ma dostęp do Twoich serwerów wewnętrznych. Na zewnątrz udostępniony jest tylko port SSH bastionu; serwery wewnętrzne przyjmują połączenia SSH wyłącznie z sieci wewnętrznej. Dzięki ProxyJump klient otwiera jedno połączenie SSH z bastionem oraz drugie, szyfrowane między punktami końcowymi, które przechodzi przez bastion do serwera docelowego. Bastion przekazuje ruch, ale nie widzi zawartości sesji, a klucz prywatny pozostaje na Twoim komputerze.
Połącz się z wiersza poleceń
Opcja -J wskazuje host pośredniczący. Kilka kolejnych hostów oddziel przecinkami; są używane w podanej kolejności. Jeśli regularnie korzystasz z tej samej trasy, dodaj ustawienia do ~/.ssh/config, aby wystarczył krótki alias.
ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal
# ~/.ssh/config
Host app-internal
HostName app.internal
User admin
ProxyJump admin@bastion.exampleSprawdź każdy klucz hosta
Każdy etap trasy to osobny serwer SSH z własnym kluczem hosta, dlatego potwierdź odciski kluczy bastionu i serwera docelowego innym zaufanym kanałem. Zmiana klucza na dowolnym etapie wymaga takiej samej uwagi jak przy połączeniu bezpośrednim. Porównaj odcisk przedstawiony podczas pierwszego połączenia z wartością odczytaną przez administratora na serwerze.
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256Wybierz ProxyJump zamiast przekazywania agenta
Przekazywanie agenta (ssh -A) pozwala każdemu z wystarczającymi uprawnieniami na bastionie używać Twoich załadowanych kluczy przez czas trwania połączenia. ProxyJump tego nie wymaga, ponieważ uwierzytelnianie na serwerze docelowym odbywa się z Twojego komputera. Unikaj też przechowywania kluczy prywatnych na bastionie i ogranicz krąg osób, które mogą się na nim logować.
Typowe problemy
Najpierw ustal, na którym etapie występuje problem: połącz się z samym bastionem, a następnie uruchom ssh -vvv z -J, aby zobaczyć, gdzie zatrzymuje się połączenie. Jeśli bastion działa, a serwer docelowy nie, przyczyną jest zwykle zapora między nimi, błędna nazwa wewnętrzna lub odrzucenie klucza przez serwer docelowy. Serwer z ustawieniem AllowTcpForwarding no odmawia działania jako host pośredniczący.
Hosty pośredniczące w CH-J Server Manager
Alpha 0.1.1 łączy się przez zapisany lub ręcznie wprowadzony host pośredniczący, a zapisane hosty mogą tworzyć łańcuch złożony z maksymalnie trzech hostów pośredniczących. Klucz hosta jest sprawdzany na każdym etapie. Monitor dostępności sprawdza serwer za hostem pośredniczącym tylko przez otwartą sesję z tym hostem; w przeciwnym razie pokazuje serwer jako niezweryfikowany, nigdy jako dostępny. Beta 0.1.0 nie ma tej funkcji.