ssh przesyła wiele portów

9

Więc to działa dla mnie:

ssh -v -L 8080:remotewebserver:8080 me@jumphost

A może chciałbym również uwzględnić więcej portów?

Chcę przesłać nie tylko 8080, ale także 8443, 8923 i 8181?

Czy muszę wykonać nowe połączenie dla każdego portu?

diabelnie
źródło

Odpowiedzi:

19

Nie, nie potrzebujesz jednego połączenia na przekazany port, po prostu dodaj kolejne -Linstrukcje:

ssh -L LPort1:RHOST1:RPORT1 -L LPORT2:RHOST2:RPORT2 [email protected]

Można to skrócić ssh jump, używając „aliasu” jump, jeśli skonfigurujesz pasującą sekcję w ~/.ssh/configpodobny sposób:

Host jump
    User myUserName
    Hostname ju.mp.ho.st
    Port 2345
    LocalForward 8080 remotewebserver:8080
    LocalForward 8443 remotewebserver:8443
    LocalForward 8923 remotewebserver:8923
    LocalForward 8181 remotewebserver:8181

# Eliminates reconnection delay, and does not try to re-forward ports:
Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

Z tej techniki korzystam od wielu lat, z pewnością już z ponad 10 portami, ale kiedy potrzebuję więcej portów do przekazania, korzystam z obsługi Dynamic Socks Proxy -D.

Alex Stragies
źródło
1
Podczas łączenia zobaczyłem te komunikaty o błędach dla każdego przekierowanego portu: bind: Address already in use channel_setup_fwd_listener_tcpip: cannot listen to port:wtedy Could not request local forwarding.Z ustawieniami Control * zniknęły, dziękuję! PS: Często używam tej flagi komentarzy na SE, a ty jesteś pierwszą osobą, którą widziałem, również z niej korzysta. Doceń to :)
Dan Dascalescu