GNU/Linux >> Tutoriales Linux >  >> Linux

ssh_exchange_identification:conexión cerrada por host remoto (sin usar hosts.deny)

Publicado originalmente en Ask Ubuntu

Si ha descartado cualquier factor "externo", el siguiente conjunto de pasos generalmente ayuda a reducirlo. Entonces, aunque esto no responde directamente a su pregunta, puede ayudar a rastrear la causa del error.

Resolución de problemas sshd

Lo que generalmente encuentro muy útil en tales casos es comenzar sshd sin dejar que se demonice. El problema en mi caso fue que ni syslog ni auth.log mostró algo significativo.

Cuando lo inicié desde la terminal obtuve:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

¡Mucho mejor! Este mensaje de error me permitió ver qué está mal y solucionarlo. Ninguno de los archivos de registro contenía esta salida.

Nota: al menos en Ubuntu el $(which sshd) es el mejor método para satisfacer sshd requisito de un camino absoluto. De lo contrario obtendrá el siguiente error:sshd re-exec requires execution with an absolute path . El -p 10222 hace sshd escuche en ese puerto alternativo, anulando el archivo de configuración; esto es para que no entre en conflicto con la ejecución potencial de sshd instancias. Asegúrese de elegir un puerto libre aquí.

Finalmente:conéctese al puerto alternativo (ssh -p 10222 [email protected] ).

Este método me ha ayudado muchas veces a encontrar problemas, ya sean problemas de autenticación u otros tipos. Para obtener una salida realmente detallada a stdout , usa $(which sshd) -Ddddp 10222 (tenga en cuenta el dd agregado para aumentar la verbosidad). Para obtener más bondad de depuración, consulte man sshd .

La principal ventaja de este método es que te permite comprobar el sshd configuración sin tener que reiniciar el sshd en el puerto predeterminado. Normalmente esto no debería interferir con las conexiones SSH existentes, pero lo he visto. Entonces, esto le permite a uno validar el archivo de configuración antes de, potencialmente, cortar el acceso a un servidor remoto (por ejemplo, tengo eso para algunos VPS e incluso para servidores físicos donde necesito pagar extra para obtener acceso fuera de banda a la máquina).


También puede tener un host cuya memoria esté tan fragmentada que no pueda asignar a una página una memoria contigua para bifurcar el proceso de alojamiento de una sesión SSH.

En tal caso, puede recibir cualquiera de los mensajes:

ssh_exchange_identification: read: Connection reset by peer

o:

Connection closed by aaa.bbb.ccc.ddd

dependiendo de qué tan lejos llegue el anfitrión antes de rescatar.

Si la fragmentación de la memoria es la causa aparente, la solución es acceder al servidor por otros medios y reiniciar algunos de los servicios pertinentes. Descubrí que Apache y MySQL son los culpables de las máquinas virtuales, ya que las máquinas virtuales no tienen una partición de intercambio. De lo contrario, reinicie el host.


Por si acaso, porque esto me pasó a mí. ¡Asegúrese de tener sshd ejecutándose en el host!

Es una falla estúpida, pero podría ser realmente tu problema.


Linux
  1. ¿Cómo agregar una conexión MySQL remota en Linux?

  2. Servir múltiples dominios mediante el uso de hosts virtuales

  3. La conexión mediante SSH a un host que no está en DNS/hosts se detiene durante algún tiempo al iniciarse la conexión

  4. Cómo conectar un host remoto usando el comando ssh

  5. Matriz en Bash no encontrada

Cómo arreglar ssh_exchange_identification:leer:Restablecimiento de la conexión por error del par

Cómo administrar el host remoto de Windows usando Ansible

SSH a hosts remotos a través de un proxy o bastión con ProxyJump

¿No hay conexión a Internet en Virtualbox (Windows 7 como invitado, Ubuntu 13.04 como anfitrión)?

Administración de hosts dedicados

Cómo hacer una copia de seguridad de un host Linux remoto usando la utilidad rsync de rsnapshot