¿Cómo configurar la redirección de puertos después de abrir una conexión ssh?

13

Estoy usando openssh tanto en el cliente como en el servidor. Sé que puedo ejecutar ssh -Lo ssh -Rconfigurar algunas redirecciones de puertos a través de ssh. Sin embargo, dado que son parámetros de línea de comandos, tales redirecciones deben escribirse antes de que se abra la conexión.

¿Puedo configurar las redirecciones de puertos sobre la marcha utilizando el cliente ssh de línea de comandos?

Cuando utilicé el PuTTYcliente ssh, pude configurar de forma interactiva una redirección de puerto mientras una conexión ya estaba abierta, sin perder ni volver a conectar, por lo que sé que es técnicamente posible.

Denilson Sá Maia
fuente

Respuestas:

24

Si está utilizando la línea de comandos SSH, y no se ha cambiado el carácter de escape función, entonces se puede escribir ~Cdespués de un salto de línea para abrir un mini-consola en el cliente ssh. Luego escriba -L port:host:porto -R port:host:porto -D portcomo lo haría en la línea de comando para agregar una redirección, o -KR portpara eliminar una redirección.

Un método más flexible para configurar redirecciones sin rehacer la autenticación es iniciar el primer cliente ssh como maestro ( -Mo -o ControlMaster=auto) y los clientes posteriores como esclavos ( -So -o ControlMaster=auto). Los esclavos hacen un túnel a través de la conexión establecida por el maestro. Puede que tenga que configurar ControlPathen la línea de comando o en su ~/.ssh/config; Consulte la descripción de las opciones en la ssh_configpágina del manual para obtener más información.

Gilles 'SO- deja de ser malvado'
fuente
En caso de que alguien se encuentre con el ~C escape not available to multiplexex sessionsproblema como lo hice yo ahora, no busque su conexión maestra. En cambio, solo agregue -O forwarda su comando de reenvío de puerto ssh, como en ssh -O forward -nfL 1234:whatever:1234 theservery funcionará.
Patrick