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