No se puede realizar ssh usando ProxyJump pero funciona con ssh -J

No se puede realizar ssh usando ProxyJump pero funciona con ssh -J

Mi pregunta es:¿Cómo configuro un host bastión para ssh en AWS usando una instancia de Ubuntu?

Puedo hacer lo siguiente con éxito:

root@e183d80cdabc# ssh -J [email protected] [email protected]
Last login: Sat Sep  4 13:14:17 2021 from 10.240.0.30
==> SUCCESS! ==> ubuntu@ip-10-240-0-20:~$

Pero falla cuando intento el enfoque del archivo ~/.ssh/config. Comandos utilizados:

# ssh 10.240.0.20
# ssh [email protected]
# ssh -i ~/.ssh/id_rsa [email protected]

ssh: connect to host 10.240.0.20 port 22: Connection refused

Mi ~/.ssh/config se ve así:

root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
  HostName 54.170.186.144
Host remote
  HostName 10.240.0.20
  ProxyJump bastion

Estoy ejecutando ubuntu en AWS de la siguiente manera:

ubuntu@ip-10-240-0-30:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Intenté agregar el User ubuntucampo pero esto no ayuda.

Mi /etc/ssh/ssh_configen el servidor se ve así:

Host *
    ForwardX11Trusted yes
    IdentityFile ~/.ssh/id_rsa
    Port 22
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

ACTUALIZAR Ahora estoy usando la opción detallada, es decir

root@e183d80cdabc# ssh -vvv 10.240.0.20
OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 2: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.240.0.20 is address
debug2: ssh_connect_direct
debug1: Connecting to 10.240.0.20 [10.240.0.20] port 22.
debug1: connect to address 10.240.0.20 port 22: Connection refused
ssh: connect to host 10.240.0.20 port 22: Connection refused

Parece no estar utilizando ningún host de salto (es decir, se salta el bastión) y va directamente, y FALLA.

¡Cualquier idea muy apreciada! Gracias

==================================================== =======

ACTUALIZACIÓN: 2021-09-04-15-44 - con SOLUCIÓN Gracias a todos, lo he marcado como respuesta a continuación.

La configuración correcta no utiliza HostName, ya que la coincidencia se realiza enAnfitrión. También pude incluir un comodín en la dirección IP, que es lo que realmente buscaba.

configuración ssh

root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
  HostName 63.33.206.201
  User ubuntu
Host 10.240.0.*
  ProxyJump bastion
  User ubuntu

Y¡voilá!

# ssh 10.240.0.20
...
ubuntu@ip-10-240-0-20:~$

Respuesta1

La correspondencia se realiza por Hostestrofa, no por HostName.

Intentar:

ssh ubuntu@remote

Respuesta2

La diferencia entre tu línea de comando

ssh -J [email protected] [email protected]

y lo que te recomiendo hacer para referenciar tu configuración

ssh remote

es que este último no tiene IP niel usuario para iniciar sesión en ambas máquinasen la línea de comando: debe editar su configuración ssh para incluirtodola información que ya no estás pasando en la línea de comando:

# $HOME/.ssh/config
### The Bastion Host
Host bastion
  HostName 54.170.186.144
  User ubuntu

### The Remote Host
Host remote
  HostName 10.240.0.20
  User ubuntu
  ProxyJump bastion

Actualización: Si bien sí, en teoríapoderconfigure sus Hostestrofas para que coincidan con las direcciones IP, recomiendocontrahaciéndolo.

Si no se llega directamente a un host con una determinada dirección IP, entonces se debe hacer referencia a él mediantenombre- Imagínese lo que sucede cuando tiene el mismo espacio IP (privado) asignado a varios hosts, no es posible asignar la configuración ProxyJump correcta para cada uno.

Otra razón por la que el uso de direcciones para hacer referencia a hosts es desfavorable es que los hosts son accesibles a través de múltiples familias de direcciones: si se puede acceder a un host a través de IPv4 e IPv6, probablemente desee que su conexión ssh siga siendo independiente del protocolo y solo agregue una bandera cuando realmente desee limitar elecciones (automáticas).

información relacionada