Conexión SSH: ssh_exchange_identifcation

9

Me he estado conectando a un servidor remoto a través de mi Mac durante aproximadamente un mes. Sin embargo, recientemente intenté conectarme usando ssh dylan @ MY_IP y recibí este mensaje.

ssh_exchange_identification: read: Connection reset by peer

También obtuve información de diagnóstico ...

debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to {MY IP{ [MY IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/id_rsa type -1
debug1: identity file /Users/watson/.ssh/id_rsa-cert type -1
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/watson/.ssh/id_dsa" as a RSA1 public key
debug1: identity file /Users/watson/.ssh/id_dsa type 2
debug1: identity file /Users/watson/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2

Después de investigar un poco, probé lo siguiente ...

  1. Reinicié mi enrutador
  2. Borrado mi archivo "known_hosts"
  3. Eliminé mi archivo "known_hosts"
  4. Lanzamiento y renovación de mi DHCP
  5. También probé desde otro dispositivo (Windows) usando Putty con un error también

Tenga en cuenta que no he realizado ningún cambio en el servidor para inhibir esta comunicación.

Además, no estoy seguro de si esto causaría problemas, pero me he conectado a él por su nombre de dominio y por su IP.

Además, pude conectarme con éxito desde otra dirección IP.

Sé que este es un gran problema con muchos recursos disponibles, pero muchas de las soluciones no funcionaron ni realmente vi ningún tipo de resolución para nadie.

Actualizar

Lo forcé al protocolo 1. En lugar de "Restablecer conexión por igual", ahora aparece "Conexión cerrada por host remoto". Ejecutarlo con información de depuración revelada:

debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to MY_IP [MY_IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/identity type -1
debug1: identity file /Users/watson/.ssh/identity-cert type -1
ssh_exchange_identification: Connection closed by remote host
Dylan
fuente
¿Utiliza autenticación de clave pública? ¿Tienes alguna llave /Users/watson/.ssh/id_dsa? Intente hacer una copia de seguridad del archivo y eliminarlo.
pabouk
No uso la autenticación de clave pública; sin embargo, hay una sola clave en el archivo. Intenté eliminar el archivo, pero no hubo ningún cambio al ejecutar el comando.
Dylan
si se trata de un problema con la versión del protocolo, podría forzar la conexión con la versión 1 del protocolo conssh -1 ...
wkaha
Consulte la nueva edición en la publicación.
Dylan

Respuestas:

4

Así es como resolví el error "ssh_exchange_identification: conexión cerrada por host remoto" al conectarse a un servidor SSH.

Recibí este error al intentar conectarme a una máquina Linux incrustada, después de desempaquetar un paquete en la raíz. Se reemplazaron muchos archivos de la biblioteca, incluido libssl.

Intentando conectar:

chetic@ubuntu:~$ ssh -v [email protected]
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to SC [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file /home/delaval/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/delaval/.ssh/id_rsa-cert type -1
debug1: identity file /home/delaval/.ssh/id_dsa type -1
debug1: identity file /home/delaval/.ssh/id_dsa-cert type -1
debug1: identity file /home/delaval/.ssh/id_ecdsa type -1
debug1: identity file /home/delaval/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2p2 Ubuntu-6ubuntu0.3
ssh_exchange_identification: read: Connection reset by peer

Buscar en Google solo parecía sugerir verificar hosts.deny y hosts.allow, pero mi máquina de destino no tenía esos archivos.

Después de reiniciar (según la sugerencia de Karthik) sshd no se estaba ejecutando. Traté de iniciar manualmente sshd en el destino:

# sshd
OpenSSL version mismatch. Built against 1000002f, you have 1000105f

Reemplacé /usr/lib/libssl.a con la versión original y comencé sshd y las cosas volvieron a la normalidad. El problema fue en mi caso causado por una versión incorrecta en el paquete que originalmente desempaqué en la raíz.

Chetic
fuente
3

Recibía el mismo error (pero de cualquier máquina, incluida la máquina problemática ssh localhost).

Comenzó cuando migré un perfil de usuario; es decir, después de copiar archivos como root, luego hizo comandos comochown -R username /Users/username/Destop

de todos modos, totalmente inseguro de por qué / var / empty propietario fue cambiado a nombre de usuario, pero sshdefinitivamente debe /var/emptyser propiedad de root (de lo contrario, obtendrá ssh_exchange_identification: read: Connection reset by peer):

    sudo chown root /var/empty
hunter3740
fuente
¡Gracias! Cambiar el propietario de /var/emptysolucionó el problema para mí.
Yevhen Pavliuk
1

Esto no es un problema con su máquina local, sino un problema en el lado del servidor. Podría haber múltiples factores que causan este problema:

  1. Cambios en la configuración /etc/hosts.allow o /etc/hosts.deny en el servidor remoto.
  2. Carga pesada del servidor.

En el pasado, cuando tuve estos problemas, hice una de dos cosas, en el siguiente orden:

  1. Modifique /etc/hosts.allow como se menciona en el artículo anterior. (y reinicie el servidor SSH)
  2. Si /etc/hosts.allow ya es como debe ser, simplemente reinicie el servidor SSH (¡y tenga cuidado cuando haga esto!)
  3. Si el reinicio no funciona, vuelva a generar las claves del servidor y reinicie el servidor SSH (esto es arriesgado, ya que cada usuario que inicie sesión en esta máquina recibirá un error sobre el servidor que ha cambiado las claves)

La mayoría de las veces, 1 resuelve el problema, pero he tenido que hacer 2 en algunos casos ... No he podido entender por qué ese es el caso, solo que ha funcionado. Tal vez tenga algo que ver con la forma en que se presenta la clave, o tal vez se corrompió de alguna manera, no estoy seguro. Pero lo que sí sé es que el error es completamente algo que tiene que ver con el servidor, y la forma en que se produce el apretón de manos cuando se establece la conexión SSH.

Karthik Rangarajan
fuente
1

Tenía SSH configurado con Cygwin y en mi caso fue el firewall de Windows el que causó exactamente este error, así que asegúrese de permitir conexiones al puerto 22.

anónimo
fuente
0

Me las arreglé para resolver este problema yo mismo muy fácilmente.

En OS X normal, puede resolver esto simplemente alternando "Inicio de sesión remoto" en Preferencias / Compartir sistema.

Sin embargo, si se trata de un servidor sin cabeza (como en mi caso), puede usar la aplicación del servidor OSX para ir a (su nombre de servidor) / Configuración y alternar entre "Activar y desactivar conexiones de shell seguras"

Sirenas
fuente
1
También noté que cómo puede solucionar el problema, pero no lo soluciona: deshabilitar el inicio de sesión remoto afecta gravemente al sistema, y ​​tener que alternar el inicio de sesión remoto cada vez que se desea enviar un mensaje a un lugar específico no es una solución viable. .
Ant6n
Sí, esto sigue siendo un problema horrible que tengo. Acabo de crear un script cron cron que reinicia el servicio cada medianoche.
Sirenas
0

Si está utilizando una clave privada o una clave de seguridad para iniciar sesión en su servidor, entonces debe cambiar el permiso para el archivo de clave a 660, utilizando el comando

sudo chmod 660 File_Name

Srijan Chaudhary
fuente
1
(1) Si bien esto puede ser la causa de sshno funcionar, no está claro cómo este problema infligiría aleatoriamente un sistema de trabajo. (2) Esta respuesta, tal como es, sería más útil si identificara el archivo del que está hablando o proporcionó instrucciones para permitir que un usuario lo identifique. (3) Supongo que estás hablando de un archivo en (debajo) del directorio de inicio del usuario. Si ese es el caso, sudono debería ser necesario.
Scott,