Minha pergunta é:Como configuro um host bastião para ssh na AWS usando uma instância do Ubuntu?
Posso fazer o seguinte com sucesso:
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:~$
Mas falha quando tento a abordagem do arquivo ~/.ssh/config. Comandos usados:
# 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
Meu ~/.ssh/config fica assim:
root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
HostName 54.170.186.144
Host remote
HostName 10.240.0.20
ProxyJump bastion
Estou executando o Ubuntu na AWS da seguinte maneira:
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
Tentei adicionar o User ubuntu
campo, mas isso não ajuda.
Meu /etc/ssh/ssh_config
no servidor fica assim:
Host *
ForwardX11Trusted yes
IdentityFile ~/.ssh/id_rsa
Port 22
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
ATUALIZAR Agora estou usando a opção detalhada, ou seja
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 não estar usando nenhum host de salto (ou seja, ele ignora o bastião) e está indo diretamente, e FALHA.
Qualquer ideia será muito apreciada! Obrigado
================================================= =======
ATUALIZAÇÃO: 2021-09-04-15-44 - com SOLUÇÃO Obrigado a todos, marquei como resposta abaixo.
A configuração correta não usa HostName, pois a correspondência é feita emHospedar. Também consegui incluir um curinga no endereço IP, que era o que eu realmente procurava.
configuração ssh
root@e183d80cdabc# cat $HOME/.ssh/config
Host bastion
HostName 63.33.206.201
User ubuntu
Host 10.240.0.*
ProxyJump bastion
User ubuntu
Evoilá!
# ssh 10.240.0.20
...
ubuntu@ip-10-240-0-20:~$
Responder1
A correspondência é feita na Host
estrofe, não na HostName
.
Tentar:
ssh ubuntu@remote
Responder2
A diferença entre sua linha de comando
ssh -J [email protected] [email protected]
e o que eu recomendo que você faça para referenciar sua configuração
ssh remote
é que este último não possui IPs nemo usuário para fazer login em ambas as máquinasna linha de comando - você deve editar sua configuração ssh para incluirtodosas informações que você não está mais passando na linha 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
Atualização: Embora sim, em teoria vocêpodeconfigure suas Host
estrofes para corresponder aos endereços IP, eu recomendocontrafazendo isso.
Se um host não for alcançado diretamente com um determinado endereço IP, ele deverá ser referido pornome- imagine o que acontece quando você tem o mesmo espaço IP (privado) atribuído a vários hosts; você não poderia atribuir a configuração correta do ProxyJump para cada um.
Outra razão pela qual o uso de endereços para se referir a hosts é desfavorável são os hosts acessíveis através de múltiplas famílias de endereços: Se um host for acessível através de IPv4 e IPv6, você provavelmente desejará que sua conexão ssh permaneça independente de protocolo e apenas adicione um sinalizador quando você realmente pretende limitar escolhas (automáticas).