Estoy tratando de configurar una puerta de enlace ssh. Tengo un host físico (H) y varias máquinas virtuales. El host puede enviar ssh a una de las máquinas virtuales (A) y luego enviar ssh a otros desde ella (vamos a llamarlo B). Tengo esto .ssh/config
en H
Host B
User foo
ProxyCommand ssh foo@A nc %h %p
Ahora cuando lo haga ssh -vvv -l foo B
en el H
que veo este error:ssh_exchange_identification: Connection closed by remote host
cat /var/log/auth.log
en A dice:
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
en un
sshd: ALL
ssh: 0.0.0.0/0.0.0.0
¡Parece que H dice que A cerró la conexión y A dice que H cerró la conexión!
/etc/ssh/ssh_config
en H
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
¿Qué más puede salir mal aquí?
Respuestas:
Es posible que desee asegurarse de que 'Host B' no debe incluir A, si B es un patrón en lugar de un solo host. Tuve que excluir A del patrón explícitamente.
fuente
Pruebe la siguiente configuración en el host H:
Me esta funcionando. Simplemente agregue el usuario foo si necesita:
Y asegúrese de que el usuario foo exista en A y B.
fuente