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->S
abusandoS->D
Respuestas:
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
ProxyJump
que hornea todo junto mágicamente:Que en tu
~/.ssh/config
aspecto como:ProxyJump
admite sintaxis SSH completa, por lo que si estájim
activadowindows_server
y usa el puerto2222
para ssh.remote_server
está en IP192.168.0.110
desdewindows_server
entonces puede escribir:Y todavía solo corro
ssh remote_server
para 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_machine
debe asegurarse de usar la IP de laremove_server
caja de salto en lugar de la IP de su máquina; estos pueden ser lo mismo.Luego puede agregar esta directiva a su
~/.ssh/config
archivo:Esto significa que si
remote_server
es una máquina diferente como se ve desdewindows_machine
entonces, 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