Posługiwać się ProxyCommand
Zobaczyć man ssh_config
. Polecam skorzystać z ProxyCommand
. Weźmy twój oryginalny scenariusz:
- Komputer A (twój komputer)
- Komputer B (nazwa hosta proxy)
- Komputer C (dostępny tylko przez SSH z komputera B)
Edytuj ~/.ssh/config
z następującą zawartością.
Host computerb
HostName <hostname or IP of Computer B>
Host computerc 192.168.35.*
ProxyCommand ssh computerb nc -w 180 %h %p
Teraz będziesz mógł bez problemu dotrzeć do komputera C. np
ssh computerc
Zalety tej metody
Więcej Ochrony
Potrzebujesz tylko swojego klucza prywatnego, aby być na komputerze A (swoim komputerze). nc
Komenda będzie działać jako serwer proxy, w którym SSH szyfrowania ruchu wskroś. Obejmuje to uwierzytelnianie. Rozprowadzanie klucza prywatnego na wielu serwerach jest bardzo złym pomysłem (ponieważ każdy serwer, na który został naruszony klucz prywatny, ostatecznie narusza klucz prywatny).
Pasuje do wielu miejsc docelowych
Można dopasować wiele komputerów docelowych za pomocą Host
. Pojedynczy komputer lub dowolny komputer w określonej sieci (np. 192.168.35.0/24
W powyższym przykładzie) do proxy przez komputer B. Służy również jako alias.
ssh 192.168.35.27
W powyższym przykładzie będzie proxy przez komputer B, aby uzyskać dostęp do adresu IP.
Łańcuchy proxy Daisy
Za pomocą tej metody można połączyć szereg dowolnych automatycznych serwerów proxy. np. możesz dodać komputer D, który jest dostępny tylko z komputera C i będzie działał transparentnie.
Host computerd
ProxyCommand ssh computerc nc -w 180 %h %p
ssh computerd
będzie automatycznie proxy przez komputer C i komputer B w powyższych ssh_config
przykładach.