GNU/Linux >> Tutoriales Linux >  >> Linux

Ssh:¿corregir la configuración del archivo de configuración de Ssh para hacer un túnel a una tercera máquina?

Estoy tratando de hacer un túnel a un servidor a través de un servidor puente. Hasta ahora, he podido hacer que funcione correctamente desde el shell de comandos usando el siguiente comando:

ssh -A -t [email protected] ssh -A [email protected]

Pero he estado tratando de envolver esto en mi ~/.ssh/config archivo y tengo problemas. He intentado:

Host axp
  User          remote_userid
  HostName      remoteserver.com
  IdentityFile  ~/.ssh/id_rsa.eric
  ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h

Pero cuando lo hago, aparece el siguiente mensaje de error de remoteserver.com y no estoy seguro de qué lo está causando:

ksh:SSH-2.0-OpenSSH_6.8^M:no encontrado

Sé que cuando inicio sesión en remoteserver.com , mi shell es /usr/bin/ksh .

Intenté agregar argumentos de ruta a los comandos ssh en el archivo de configuración, pero no hizo ninguna diferencia.

¿Alguna idea de qué puede ser?

Respuesta aceptada:

La respuesta de Jakuje es correcta, pero desde OpenSSH 7.3 , ahora puedes usar -J ProxyJump que es mas facil Ver mis notas:

OpenSSH 7.3 o superior

Usa ProxyJump . Como se explica en el manual:

-J [[email protected]]host[:port]
Conéctese al host de destino haciendo primero una conexión ssh al host de salto y luego estableciendo un reenvío TCP al destino final desde allí. Se pueden especificar varios saltos separados por comas. Este es un atajo para especificar una directiva de configuración de ProxyJump.

ProxyJump ~/.ssh/config ejemplo

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2_behind_server1
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyJump server1

Conectar con

ssh server2_behind_server1 -v

Agregar -v para salida detallada

ProxyJump -J Ejemplo de línea de comando

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa

Conectar con

ssh server2 -J server1 -v

O usa -o

ssh server2 -o 'ProxyJump server1' -v

OpenSSH 5.4 o superior

Utilice ProxyCommand con -W

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 -W %h:%p

Conectar con

ssh server2 -v

O usa -o

ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v

OpenSSH debajo de 5.4

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 nc %h %p 2> /dev/null

Conectar con:

ssh server2 -v

O usa -o

ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v

Fuentes

-J agregado en OpenSSH 7.3

  • ssh(1):agregue una opción ProxyJump y el correspondiente indicador de línea de comando -J
    para permitir la indirección simplificada a través de uno o más bastiones SSH
    o "hosts de salto".

-W agregado en OpenSSH 5.4

  • Se agregó un 'modo netcat' a ssh(1):"ssh -W host:port ..." Esto conecta
    stdio en el cliente a un puerto único en el servidor. Esto
    permite, por ejemplo, usar ssh como ProxyCommand para enrutar conexiones
    a través de servidores intermedios. bz#1618

Linux
  1. Ssh – ¿Pasar contraseñas a un script?

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

  3. Ejecutar archivo exe o bat en una máquina remota de Windows desde * nix

  4. Mantener viva la sesión SSH

  5. ¿Cómo puedo agregar una dirección IPv6 con una ID de alcance al archivo de configuración ssh?

Uso del archivo de configuración SSH

¿Cómo configurar la autenticación basada en clave Ssh para Github usando el archivo ~/.ssh/config?

Use el archivo de configuración SSH para administrar las conexiones SSH a varios servidores remotos

Agregar clave pública al archivo unknown_hosts

¿Puedes tener más de un archivo ~/.ssh/config?

agregar contraseña a .ssh/config