Cómo acceder a un servidor remoto usando un host de salto
Un host de salto (también conocido como jump server ) es un host intermediario o una pasarela SSH a una red remota, a través de la cual se puede establecer una conexión a otro host zona de seguridad diferente, por ejemplo, una zona desmilitarizada ( DMZ ). Une dos zonas de seguridad diferentes y ofrece acceso controlado entre ellas.
Un host de salto debe estar altamente protegido y monitoreado, especialmente cuando abarca una red privada y un DMZ con servidores que brindan servicios a los usuarios en Internet.
Un escenario clásico es la conexión desde su computadora de escritorio o computadora portátil desde la red interna de su empresa, que está altamente protegida con firewalls a una DMZ. Para administrar fácilmente un servidor en una DMZ, puede acceder a él a través de un host de salto .
En este artículo, demostraremos cómo acceder a un servidor Linux remoto a través de un host de salto y también configuraremos las configuraciones necesarias en las configuraciones de cliente SSH por usuario.
Considere el siguiente escenario.

En el escenario anterior, desea conectarse a HOST 2 , pero debe pasar por HOST 1 , debido a los privilegios de acceso, enrutamiento y cortafuegos. Hay una serie de razones válidas por las que se necesitan jumphosts ...
Lista dinámica de Jumphost
La forma más sencilla de conectarse a un servidor de destino a través de un host de salto es utilizar el indicador -J
desde la línea de comandos. Esto le indica a ssh que realice una conexión con el host de salto y luego establezca un reenvío de TCP al servidor de destino, desde allí (asegúrese de que haya un inicio de sesión SSH sin contraseña entre las máquinas).
$ ssh -J host1 host2
Si los nombres de usuario o puertos en las máquinas difieren, especifíquelos en el terminal como se muestra.
$ ssh -J [email protected]:port [email protected]:port
Lista de Jumphosts múltiples
La misma sintaxis se puede utilizar para realizar saltos sobre varios servidores.
$ ssh -J [email protected]:port,[email protected]:port [email protected]:port
Lista de jumphost estática
La lista de jumphost estática significa que conoce el jumphost o jumphosts que necesita para conectar una máquina. Por lo tanto, debe agregar el siguiente "enrutamiento" jumphost estático en el archivo ~/.ssh/config
y especificar los alias del host como se muestra.
### First jumphost. Directly reachable Host vps1 HostName vps1.example.org ### Host to jump to via jumphost1.example.org Host contabo HostName contabo.example.org ProxyJump contabo
Ahora intente conectarse a un servidor de destino a través de un host de salto como se muestra.
$ ssh -J vps1 contabo

El segundo método es usar la opción ProxyCommand para agregar la configuración jumphost en su ~ .ssh/config
o /home/mial /.ssh/config
como se muestra.
En este ejemplo, el host de destino es contabo y jumphost es vps1 .
Host vps1 HostName vps1.example.org IdentityFile ~/.ssh/vps1.pem User ec2-user Host contabo HostName contabo.example.org IdentityFile ~/.ssh/contabovps Port 22 User admin Proxy Command ssh -q -W %h:%p vps1
Donde el comando Proxy Command ssh -q -W% h:% p vps1
, significa ejecutar ssh en modo silencioso (usando -q
) y en el reenvío de archivos (usando
A continuación, intente acceder a su host de destino como se muestra.
$ ssh contabo
El comando anterior primero abrirá una conexión ssh a vps1 en el fondo efectuado por ProxyCommand , y luego, inicie la sesión ssh en el servidor de destino contabo .
Para obtener más información, consulte la página de manual de ssh o consulte: OpenSSH/Cookbxook/Proxies y Jump Hosts.
¡Eso es todo por ahora! En este artículo, hemos demostrado cómo acceder a un servidor remoto a través de un host de salto. Utilice el formulario de comentarios a continuación para hacer preguntas o compartir sus opiniones con nosotros.