GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ssh a través del host (jumpserver) para llegar a otro servidor

En esta guía, aprenderemos cómo simplificar el proceso usando las opciones que nos brinda el cliente ssh, incluido el uso del SSH ProxyCommand comando.

Contenido relacionado:

  • SSH:generar y trabajar con claves ssh

El escenario SSH

Así es como se configura ssh.

+--------------+       +------------+      +-----------+
| Local machine|   ->  | JumpServer | ->   | Dbserver  |
+--------------+       +------------+      +-----------+

Solo se puede acceder al servidor DB iniciando sesión en el servidor intermedio:Jump Server. Primero inicie sesión en el jumpserver

ssh [email protected]

Luego, desde el servidor de salto podemos iniciar sesión en el servidor de base de datos

ssh [email protected]

Uso de la opción -J para los últimos clientes ssh

Para los clientes ssh más recientes, la opción -J le permite especificar qué host usar como host de salto. Este es el formato

ssh -J [email protected] [email protected]

Así es como conectarse al control remoto usando un servidor de salto público

ssh -J [email protected] [email protected]

Si tiene que especificar una clave ssh, use este formato:

ssh -J [email protected] [email protected]  -i ~/.ssh/id_server_key

Uso de ProxyCommand cuando la opción -J no está disponible

En versiones anteriores de openssh, -J no está disponible. Así que usa la siguiente sintaxis:

ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]

Así es como lo uso en mi máquina local

ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa

Para los clientes más antiguos que no admiten la opción -W

En este caso, ssh -tt dominio. En lugar de escribir dos comandos ssh, puedo escribir el siguiente comando todo en uno. Esto es útil para conectarse a un servidor de base de datos remoto a través de un cortafuegos llamado jumpserver como host de salto:

ssh -tt [email protected] ssh -tt [email protected]

Uso:

ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa

donde:

  • El -t opción pasada a la asignación pseudo-tty de la fuerza del comando ssh. Esto se puede usar para ejecutar programas arbitrarios basados ​​en pantalla en una máquina remota. Varios -tt las opciones fuerzan la asignación de tty, incluso si ssh no tiene tty local.

Guardar la configuración en el archivo ~/.ssh/config

Puede definir las opciones de configuración en el ~/.ssh/config expediente. Así es como se vería la configuración, especificamos el ProxyCommand:

Host dbserver
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh [email protected] -W %h:%p
    IdentityFile ~/.ssh/id_rsa

También puedes usar ProxyJump

Host dbserver
    Hostname 10.70.1.190
    User ubuntu
    ProxyJump [email protected]
    IdentityFile ~/.ssh/id_rsa

También puede encadenar recursivamente varios hosts de salto:

Host jumpsrver
    Hostname 13.36.234.247
    User rocky


Host dbserver2
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh -W %h:%p jumpsrver
    IdentityFile ~/.ssh/id_rsa

Host dbserver3
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh -W %h:%p dbserver2
    IdentityFile ~/.ssh/id_rsa

Al hacer esto, pasará a través de los otros hosts

ssh dbserver3

Linux
  1. Cómo crear un host virtual Nginx (bloque de servidor)

  2. Cómo aumentar el tiempo de espera de la conexión SSH

  3. Ssh:¿tráfico de túnel a través de otra máquina a través de Ssh?

  4. ¿Cómo enrutar Internet a través de un túnel Ssh?

  5. Cómo hacer ssh como otro usuario

Cómo alojar un sitio web en un servidor web Apache

Cómo usar SSH para conectarse a un servidor remoto

Cómo agregar una clave pública SSH al servidor

Cómo configurar SSH en CentOS y RHEL

Cómo SSH al servidor a través de Linux

Cómo proteger SSH con Fail2Ban