Não é possível fazer ssh usando ProxyJump, mas funciona com ssh -J

Não é possível fazer ssh usando ProxyJump, mas funciona com ssh -J

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 ubuntucampo, mas isso não ajuda.

Meu /etc/ssh/ssh_configno 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 Hostestrofe, 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 Hostestrofes 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).

informação relacionada