ssh reenviar múltiples puertos

9

Entonces esto funciona para mí:

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

¿Qué tal si también me gustaría incluir más puertos?

Quiero reenviar no solo 8080, sino también 8443, 8923 y 8181.

¿Necesito hacer una nueva conexión para cada puerto?

devnull
fuente

Respuestas:

19

No, no necesita una conexión por puerto reenviado, solo agregue más -Ldeclaraciones:

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

Esto se puede acortar a ssh jump, usando el "alias" jump, si configura una sección coincidente en su ~/.ssh/configforma siguiente:

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

He usado esta técnica durante muchos años, seguramente ya con más de 10 puertos, pero cuando necesito reenviar más puertos, uso el soporte de Dynamic Socks Proxy -D.

Alex Stragies
fuente
1
Al conectarme, vería estos mensajes de error para cada puerto reenviado: bind: Address already in use channel_setup_fwd_listener_tcpip: cannot listen to port:luego, Could not request local forwarding.con la configuración de Control *, estos desaparecieron, ¡gracias! PD: He estado usando mucho esa marca de comentarios en SE, y tú eres la primera persona que he visto también usarlo. Aprecio eso :)
Dan Dascalescu