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 ubuntu
campo pero esto no ayuda.
Mi /etc/ssh/ssh_config
en 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 Host
estrofa, 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 Host
estrofas 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).