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 -W ) modo, redirija la conexión a través de un host intermedio ( vps1 ).

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.