Contexto
Estoy ejecutando Ubuntu Desktop como mi máquina principal, a la que llamaré D. Quiero conectarme al servidor S a través de ssh, pero el firewall me está bloqueando.
Tengo acceso al servidor S, a través de una ruta muy engorrosa, que involucra una máquina virtual de Windows y PuTTY . Esto hace que trabajar con este servidor sea extremadamente molesto: un entorno completamente diferente, copiar / pegar no funciona, no puedo usar correctamente mi escritorio mientras estoy conectado (Alt-Tab está roto por la máquina virtual), etc.
He verificado que puedo ssh desde el servidor S a mi máquina de escritorio D (lo contrario de lo que necesito).
¿Podría de alguna manera iniciar un "reenvío de puertos" o similar desde el servidor, para poder enviar ssh al servidor desde mi escritorio?
fuente

D->SabusandoS->DRespuestas:
Puede usar el siguiente comando para configurar un túnel SSH desde el servidor remoto a su máquina local:
Cuando se configura el túnel, simplemente puede enviar ssh a su servidor remoto con el siguiente comando:
Tenga en cuenta que debe configurar las claves ssh para el inicio de sesión automático (sin solicitud de contraseña). Si desea crear el túnel SSH de forma interactiva, puede eliminar las opciones
-f -N. Para obtener más información,man ssh.fuente
Si está ejecutando una versión más nueva de OpenSSH (7.3+), entonces puede usar
ProxyJumpque hornea todo junto mágicamente:Que en tu
~/.ssh/configaspecto como:ProxyJumpadmite sintaxis SSH completa, por lo que si estájimactivadowindows_servery usa el puerto2222para ssh.remote_serverestá en IP192.168.0.110desdewindows_serverentonces puede escribir:Y todavía solo corro
ssh remote_serverpara llegar allí.Si está ejecutando una versión anterior de SSH, use ProxyCommand ; esto le permite decirle a SSH que primero ejecute un comando para establecer una conexión proxy, antes de ejecutar el comando SSH real.
Utiliza la opción SSH -W , que es la abreviatura de la sintaxis netcat más arcana .
Tenga en cuenta que, como cuando está ejecutando
ssh remote_server, ahorawindows_machinedebe asegurarse de usar la IP de laremove_servercaja de salto en lugar de la IP de su máquina; estos pueden ser lo mismo.Luego puede agregar esta directiva a su
~/.ssh/configarchivo:Esto significa que si
remote_serveres una máquina diferente como se ve desdewindows_machineentonces, puede ponerla en la configuración y seguir usándolassh remote_server.fuente
En lugar de tratar de eludir las cosas y crear una ruta complicada, ¿no puedes simplemente pedir que se permita SSH desde tu escritorio al servidor? Si lo necesita y debe acceder al servidor, no puedo ver por qué rechazaría la solicitud.
fuente