error de túnel ssh "ssh_exchange_identification: conexión cerrada por host remoto"

10

Estoy tratando de usar un túnel ssh desde mi máquina de oficina a mi máquina doméstica, y aparece un error cuando intento usarlo.

Lo que estoy haciendo es comenzar un shell así:

ssh -gL 12345:my.home.domain:22 my.home.domain

Esto me está dando un caparazón adecuado, no hay problema. Lo que normalmente hago es ssh a mi máquina doméstica a través de esta máquina de oficina, así:

ssh -p 12345 127.0.0.1

Esto siempre funcionó para mí, hasta la semana pasada, cuando configuré un nuevo sistema en mi máquina doméstica (cambio de Ubuntu a Debian). Ahora me sale un error. Todavía puedo abrir mi conexión ssh inicial, pero cuando trato de usar ese túnel, aparece (en la máquina de oficina) este error:

ssh_exchange_identification: Connection closed by remote host

Además, cuando eso sucede, el caparazón abierto a través del cual configuré la tunelización muestra esta línea:

channel 3: open failed: connect failed: Connection timed out

En ese momento, estoy perdido. Si se necesita más información, estaré encantado de publicarla.

============= más allá de eso ==============

Después de jugar un poco más, descubrí que recibo una respuesta diferente del servidor (es decir, mi máquina doméstica) cuando intento conectarme por telnet en los distintos puertos. Si lo intento:

telnet my.home.domain 22

Me devuelve esto:

Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2

Que es lo que esperaría. Sin embargo, después de configurar el túnel y luego hacer un telnet a eso, veo esta respuesta:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

============== y aún más ==================

Según la sugerencia de kbulgrien , aquí está el resultado de la máquina cliente con la opción -v:

ssh -vp 24600 127.0.0.1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de marzo de 2012
debug1: lectura de datos de configuración / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config línea 19: Aplicar opciones para *
debug1: Conexión al puerto 127.0.0.1 [127.0.0.1] 24600.
debug1: conexión establecida.
debug1: archivo de identidad /home/jacob/.ssh/id_rsa type -1
debug1: archivo de identidad /home/jacob/.ssh/id_rsa-cert tipo -1
debug1: archivo de identidad /home/jacob/.ssh/id_dsa tipo -1
debug1: archivo de identidad /home/jacob/.ssh/id_dsa-cert tipo -1
debug1: archivo de identidad /home/jacob/.ssh/id_ecdsa tipo -1
debug1: archivo de identidad /home/jacob/.ssh/id_ecdsa-cert tipo -1
ssh_exchange_identification: conexión cerrada por host remoto

Jacob Ewing
fuente
Una de las causas del ssh_exchange_identification: Connection closed by remote hosterror se relaciona con el host de conexión que aparece en el /etc/hosts.deny.
Zoredache
Hm: si cat /ets/hosts.deny en esa máquina, todas las líneas se remarcan.
Jacob Ewing
¿Puedo sugerir agregar -val comando ssh que falla? ¿La salida resultante da alguna otra indicación de falla (es decir channel 1: open failed: administratively prohibited: open failed)?
kbulgrien
2
Lo siento, se me ocurrió que es útil tener -vtanto en el túnel como en los comandos ssh fallidos (buscando algo más que channel 3: open failed: connect failed: Connection timed out). Cabe mencionar que se pueden agregar múltiples -v(hasta tres) para aumentar la verbosidad. No necesariamente publicaría toda la vomitación, pero podría valer la pena leer palabras que parecen indicar un problema.
kbulgrien

Respuestas:

1

Tal vez si tiene más de 10 sesiones de ssh esperando insertar la contraseña, tiene ese tipo de error, recuerdo que fue un error reciente de ssh, si verifica esto, use el comando a continuación

for i in {1..15};do ssh -fNt [email protected] & >/dev/null ;done
c4f4t0r
fuente
0

Algo como esto sucedió en una instalación reciente. En esta situación, /etc/hosts.deny existía y no tenía configuraciones que explícitamente denegaran el acceso, por lo que las circunstancias parecen similares. Era necesario alterar /etc/hosts.allow para agregar algo como:

sshd: 192.168.127.0/255.255.255.128

Los detalles de IP deben ajustarse a sus necesidades o reemplazarse ALLsi no hay preocupación de permitir ssh desde cualquier lugar.

Después de realizar los cambios, detenga y reinicie sshd.

Las respuestas votadas a la siguiente pregunta proporcionan más ejemplos.

SSH hosts.deny y hosts.allow

Aquí hay un testimonio de otra persona que vincula el mensaje de error con la solución.

Cómo solucionarlo: ssh_exchange_identification: conexión cerrada por un problema de host remoto al iniciar sesión con SSH

kbulgrien
fuente
Hmm, lamentablemente eso no me lo solucionó. Creo que mi situación difiere de las del ejemplo. Puedo ingresar en el puerto 22 sin problemas. Es solo cuando trato de hacer un túnel a través de otro puerto que recibo los errores mencionados.
Jacob Ewing
Concedido que el túnel es una diferencia distintiva. Dado eso, ¿esto ayuda: debate.dreamhost.com/thread-97951.html ? También he encontrado referencias a una indicación de que desinstalar y reinstalar el paquete sshd en sistemas similares a Debian corrige un problema con las claves que causa el comportamiento que usted describe ( discusión.dreamhost.com/ thread-97951.html et. Al.) .
kbulgrien
Tienes sshd (openssh-server) instalado en ambos sistemas, ¿verdad?
kbulgrien
Yupyup He estado haciendo esto durante bastante tiempo, y solo tuve problemas la semana pasada después de cambiar a Debian en mi máquina doméstica (el servidor). Intentaré su sugerencia de desinstalar / reinstalar sshd cuando llegue a casa esta noche.
Jacob Ewing
0

Tuve el mismo problema y al final lo resolví corrigiendo /etc/network/interfaces:

auto eth0
iface eth0 inet static

o

auto eth0
iface eth0 inet dhcp

sin esa configuración nunca obtengo una conexión inversa a mi túnel ssh.

dr4ck0
fuente
0

En mi caso, tuve que insertar en /etc/ssh/sshd_configla máquina de la puerta de enlace las siguientes líneas:

Match User <username>
   GatewayPorts yes

Ver más detalles aquí

¡Espero que esto ayude!

floatingpurr
fuente