Você pode querer ter certeza de que 'Host B' não deve incluir A, se B for um padrão em vez de um único host. Eu tive que excluir A do padrão explicitamente.
Host *.example.com !gateway.example.com
ProxyCommand ssh -q -W %h:%p [email protected]
Estou tentando configurar um gateway ssh. Eu tenho um host físico (H) e um número de VMs nele. O host pode ssh para uma das VMs (A) e, em seguida, ssh para outras pessoas a partir dele (vamos chamá-lo de B). Eu tenho isso em .ssh/config
em H
Host B
User foo
ProxyCommand ssh foo@A nc %h %p
Agora, quando faço ssh -vvv -l foo B
on H
, vejo este erro: ssh_exchange_identification: Connection closed by remote host
cat /var/log/auth.log
em A diz:
Jun 7 18:54:00 ubuntu sshd[846]: Received disconnect from 192.168.129.1: 11: disconnected by user
Jun 7 18:54:00 ubuntu sshd[834]: pam_unix(sshd:session): session closed for user foo
Jun 7 18:54:11 ubuntu sudo: foo : TTY=pts/6 ; PWD=/home/foo ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
Jun 7 18:54:11 ubuntu sudo: pam_unix(sudo:session): session opened for user root by foo(uid=30000)
/etc/hosts.allow
em A
sshd: ALL
ssh: 0.0.0.0/0.0.0.0
Parece que H está dizendo que A fechou a conexão e A diz que H fechou a conexão!
/etc/ssh/ssh_config
on H
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
O que mais pode dar errado aqui?
Você pode querer ter certeza de que 'Host B' não deve incluir A, se B for um padrão em vez de um único host. Eu tive que excluir A do padrão explicitamente.
Host *.example.com !gateway.example.com
ProxyCommand ssh -q -W %h:%p [email protected]
Tente a seguinte configuração no host H:
Host B
ProxyCommand ssh -q -W %h:%p A
Está funcionando para mim. Basta adicionar o usuário foo se você precisar:
Host B
User foo
ProxyCommand ssh -q -W %h:%p foo@A
E certifique-se de que o usuário foo existe em A e B.