SSH ProxyCommand ejemplo: Pasando por un host para llegar a otro servidor

¿Cómo puedo usar y saltar a través de un servidor para llegar a otro usando ssh en sistemas Linux o Unix? ¿Es posible conectarse a otro host a través de un intermediario para que el cliente pueda actuar como si la conexión fuera directa usando ssh?

Puede saltar host utilizando ProxyCommand. Algunas veces sólo puede acceder a un servidor remoto a través de ssh en iniciandosesión en un servidor intermediario (o firewall/host de salto). Así que primero se inicia sesión en el servidor intermediario y luego ssh a otro servidor. Para ello se necesita autenticarse dos veces y la cadena puede ser larga, y muchas veces no se limita a sólo dos hosts.

Ejemplo de Configuración

Puedo sólo puede acceder a un servidor remoto llamado ‘FooServer’ a través de ssh en un servidor intermediario llamado ‘Jumphost’. Primero, ingrese a Jumphost:

A continuación, debo pasar por el sistema intermediario de la siguiente manera:

Pasar por una puerta de enlace o dos

En lugar de escribir dos comandos ssh, puedo escribir el siguiente comando todo en uno. Esto es útil para conectarse a FooServer a través de un firewall llamado ‘Jumphost’ como host de salto:

Dónde,

La opción -t pasó la asignación pseudo-tty que fuerza el comando ssh. Esto se puede utilizar para ejecutar programas basados en pantalla arbitrarios en una máquina remota. Múltiples opciones -tt pueden forzar la asignación de tty, incluso si no tiene tty en el ssh local.

Saludar con ProxyCommand

La sintaxis es:

El comando netcat (nc) es necesario para establecer un canal TCP entre Jumphost (o firewall) y FooServer. Ahora, mi ordenador portátil (sistema local) está conectado a FooServer mediante JumpServer. En este ejemplo, la utilidad netcat (nc) es para leer y escribir conexiones de red directamente. Se puede utilizar para pasar conexiones a un segundo servidor como FooServer.

Actualizar el archivo ~ /.ssh/config

Edite el archivo $ HOME/.ssh/config utilizando un editor de texto como vi, escriba:

Añada la siguiente configuración:

Guarde y cierre el archivo. Dónde,

  • Host fooserver: Defina el alias de su elección.
  • HostName FooServer: Defina el nombre del servidor/host remoto real.
  • Usuario carlos: Defina el nombre de usuario real para el servidor/host remoto.
  • ProxyCommand ssh [email protected] nc %h %p: Especifica el comando a utilizar para conectarse al servidor. En este ejemplo, estoy usando el comando nc. Cualquier ocurrencia de% h se sustituirá por el nombre de host para conectar, % p por el puerto y % r por el nombre de usuario remoto.

Para probar ingrese:

Para ver los detalles, pase la opción -v al comando ssh. Aquí hay otro fragmento:

Ahora ejecute:

Ejemplo de la salida:

La sintaxis sftp

La sintaxis es la siguiente:

Consulte las páginas de manual para más información: ssh(1), ssh_config(5), nc(1)

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.