Cómo acceder a un servidor remoto mediante un host de salto


Un host de salto (también conocido como servidor de salto) es un host intermediario o una puerta de enlace SSH a una red remota, a través del cual se puede establecer una conexión a otro host en una zona de seguridad diferente, por ejemplo, una zona desmilitarizada (DMZ). Sirve de puente entre dos zonas de seguridad diferentes y ofrece un acceso controlado entre ellas.

Un host de salto debe ser altamente seguro y monitoreado, especialmente cuando abarca una red privada y una DMZ con servidores que brindan servicios a los usuarios en Internet.

Un escenario clásico es conectarse desde su computadora de escritorio o computadora portátil desde dentro de 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 los ajustes necesarios en sus configuraciones de cliente SSH por usuario.

Considere el siguiente escenario.

En el escenario anterior, desea conectarse al HOST 2, pero debe pasar por HOST 1, debido a los privilegios de acceso, enrutamiento y firewall. 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 utilizando el indicador -J de la línea de comandos. Esto le dice a ssh que haga 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 tener un inicio de sesión SSH sin contraseña entre máquinas).

$ ssh -J host1 host2

Si los nombres de usuario o los puertos de 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

Se puede utilizar la misma sintaxis para realizar saltos en 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 la 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 de 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 vps1

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 archivo ~ .ssh/config o $HOME/.ssh/config como se muestra.

En este ejemplo, el host de destino es contabo y el 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 reenvío stdio (usando -W ), redirige la conexión a través de un host intermedio (vps1).

Luego intente acceder a su host de destino como se muestra.

$ ssh contabo

El comando anterior primero abrirá una conexión ssh a vps1 en segundo plano efectuada por ProxyCommand, y luego, iniciará 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 and 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 cualquier pregunta o compartir sus pensamientos con nosotros.