¿Cómo corregir el error "ssh_exchange_identification: read: Connection reset by peer" error?


21

No puedo conectarme a mi servidor a través de ssh usando mi computadora, pero puedo conectarme a este servidor a través de mi teléfono celular usando la aplicación termius. Lo he comprobado /etc/hosts.allowy /etc/hosts.denymis iptables, y también he buscado en google, parece que no hay respuesta para este problema. No sé cómo resolverlo, aquí está la ssh -v 183.17.228.80salida

debug1: Connecting to 183.17.228.80 [183.17.228.80] port 22.
debug1: Connection established.=======================   
debug1: permanently_set_uid: 0/0   
debug1: SELinux support disabled  
debug1: key_load_public: No such file or directory    
debug1: identity file /root/.ssh/id_rsa type -1    
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_rsa-cert type -1      
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa-cert type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa type -1  
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa-cert type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519 type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519-cert type -1  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2   
ssh_exchange_identification: read: Connection reset by peer

Puedo hacer ping a este servidor, aquí está telnet

telnet 183.17.228.29 22  
Trying 183.17.228.29...  
Connected to 183.17.228.29.  
Escape character is '^]'.                                                                 
Connection closed by foreign host.

Es posible que desee verificar si tiene instalado DenyHosts, DenyHosts tiene sus propios archivos host de permitir y denegar.
Robby1212

¿está seguro de que el software que está ejecutando en la PC es compatible con todos los modos de cifrado SSH?
Tharaka Devinda

como mencioné, he comprobado los archivos de hosts, no para DenyHosts
user3054879

No estoy seguro, tal vez el algoritmo de cifrado era diferente, pero mi cliente era masilla ... pero puedo enviar al mismo servidor por terminal en iOS
usuario3054879

Desde la ruta de los archivos clave, supongo que se está conectando como root. Esto generalmente no está habilitado; mira tu configuración sshd. ssh -vvvpodría darte más información.
ridículo

Respuestas:


13

Simplemente reinicie su servidor que desea ssh. Funcionó para mí, anteriormente estaba enfrentando el mismo problema.


1
No pude encontrar la causa raíz, pero el reinicio funcionó para mí.
Raghavendra N

2
Me encontré con el mismo problema cuando ssh a mi servidor gratuito en AWS. Es causado por el servidor es el escape de memoria. Reiniciar funciona.
Leon

@thistleknot, reiniciar funciona para mí y es una solución rápida y fácil. Nada horrible sobre eso. De hecho, no sé qué causó el problema, pero el reinicio solucionó algo.
CousinCocaine

Si el reinicio funcionó, probablemente no sea un problema de configuración, sino más bien un problema de recursos. Tal vez aumentar la prioridad de ssh podría haber hecho el truco.
JohnRos

1
reiniciar el servidor es una muy, muy mala sugerencia.
Hossein Vatani

8

Eso realmente significa que su servidor está en la lista negra de su IP. Intente incluir en la lista blanca su dirección IP para poder iniciar sesión. Puede echar un vistazo a la lista / etc / hosts para ver si la dirección IP de su servidor ha cambiado.


77
Ese no es necesariamente el caso.
sempaiscuba

2
Esto parecía ser cierto para mí. Descubrí que mi servidor de Cloudways había incluido en la lista negra la dirección IP de mi casa, y que necesitaba incluirla manualmente en la lista blanca.
Ryan

El problema desapareció después de unas horas, no sé por qué, pero no fue necesario reiniciar.
Salem F

Gracias por el comentario re: "El servidor de Cloudways había incluido en la lista negra la IP de mi casa", esto acababa de sucedernos, incluido en la lista blanca manualmente y todo listo.
Jules Matthews

1

El error anterior ocurre cuando tiene un límite de error al intentar autenticarse en el servidor y tiene demasiadas claves ssh en su cliente (más del valor de MaxAuthTries)

Lo que puede intentar es aumentar el valor de MaxAuthTries y reiniciar sshd daemon. O puede limitar la cantidad de claves en su ~/.sshdirectorio y usar subdirectorios y ~/.ssh/configarchivos para definir la clave por host / grupo de hosts


He intentado esto, pero no, de hecho, casi he intentado todos los métodos que puedo encontrar en Internet, creo que la clave fue algoritmo de cifrado negeotiation, pero no cómo solucionarlo
user3054879

2
que intentaste por favor actualice su pregunta
Romeo Ninov

1

La forma en que resolví el problema fue que fui a la máquina host y ejecuté algunos comandos.

sudo mkdir /var/run/sshd
sudo chmod 755 -R /var/run/sshd
sudo service ssh restart

Me conecté a la máquina después de eso.


1

Sucedió lo mismo, y necesitaba ssh -v 'ip addr' y luego vi que necesitaba aceptar el certificado. También puede ser una masilla de bloqueo de reglas de ruta o ACL: ejemplo:

Putty Client tiene 10.xxx addr con firewalls que impiden que la red empresarial hable con hosts DMZ, pero su teléfono celular con 58.xxx, sea cual sea la dirección IP pública, puede comunicarse con el host dmz al que está intentando comunicarse.

así que miraría la información ssh -v cuando intente conectarse nuevamente, verifique si puede obtener alguna información y luego verifique si hay reglas que le impidan acceder a su servidor a nivel de firewall o enrutador, no en un archivo denyhosts en el servidor mismo.


0

Estoy usando mi punto de acceso celular para conectarme a la web, mientras trabajaba, la consola se congeló y no pude conectarme más. ssh_exchange_identification: read: Connection reset by peer

Traté de restablecer el SRV pero no ayudó.

Solo cuando cambio mi conexión de red (a un punto de acceso en un celular diferente) podría volver a conectarme.

NOTA: Todavía puedo usar la conexión anterior para conectarme a SRV en un AWS diferente, extraño ...


0

Para resolver el problema, proceda de la siguiente manera:

  1. Reinicie su servidor desde la terminal en línea del servidor.

Si esto no funciona,

  1. Edite el archivo $HOME/.ssh/known_hosts
  2. Elimine cualquier contenido dentro de este archivo, cuando se vuelva a conectar a cualquier servidor que ssh, entonces debe volver a aceptar las conexiones.

1
-1 para la eliminación completa de known_hosts. Sería mejor editar este host en particular en cuestión (aunque dudo que eso ayude aquí).
David Foerster


0

Puede haber muchas razones, pero una de las más posibles puede ser (en mi caso fue) ssh / port 22 no está permitido por el firewall .

Puede permitir la conexión ssh por la interfaz de usuario (algunos proveedores lo permiten) o si tiene algún método alternativo para iniciar sesión (por ejemplo, digitalocean proporciona un botón de consola) puede ejecutar el siguiente comando

sudo ufw allow ssh
sudo ufw allow 22

0

Parece que ssh daemon en el servidor está colgado. ¿Estás seguro de que se está ejecutando? Cuando hace telnet a ssh, debe ver una firma. Algo como:

telnet unixhow.com 22
Trying 35.228.26.20...
Connected to unixhow.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1

Lo que veo de su salida es ssh daemon no responde en el lado del servidor. Recomiendo conectarse a través de IP-KVM (o de alguna otra manera) a la máquina remota y reiniciar sshd.


0

Esto podría deberse a que no tiene un servidor openssh ejecutándose en su ubuntu. Puede ejecutar el siguiente comando para verificar el estado de su servidor openssh.

ubuntu@ubuntu:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-20 11:52:16 GMT; 5min ago
  Process: 1034 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 1058 (sshd)
    Tasks: 1
   Memory: 5.1M
      CPU: 122ms
   CGroup: /system.slice/ssh.service
           └─1058 /usr/sbin/sshd -D

Mar 20 11:52:15 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on 0.0.0.0 port 22.
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on :: port 22.
Mar 20 11:52:16 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
Mar 20 11:52:24 ubuntu sshd[1131]: Connection closed by 10.0.2.2 port 60566 [preauth]
Mar 20 11:53:59 ubuntu sshd[1135]: Accepted password for ubuntu from 10.0.2.2 port 60654 ssh2
Mar 20 11:53:59 ubuntu sshd[1135]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 20 11:57:48 ubuntu sshd[1238]: Accepted password for ubuntu from 10.0.2.2 port 61124 ssh2
Mar 20 11:57:48 ubuntu sshd[1238]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

Si el estado no es active (running), es posible que desee instalar y / o iniciar el servidor openssh. Puede hacerlo con los comandos que se muestran a continuación.

sudo apt update
sudo apt install openssh-server

0

Tuve el mismo problema pero después de reiniciar el demonio sshd pude conectarme al host.

sudo systemctl restart sshd && systemctl status sshd

Esta es solo una solución temporal hasta que aumente el parámetro MaxAuthTries.


0

Mi solución es agregar mi dirección IP local a /etc/hosts.allow:

sshd:192.168.10.88:allow

esto funciona para mi


-2
  1. Compruebe que sshd esté instalado y en ejecución del servidor.
  2. Asegúrate de que el demonio esté instalado e iniciado. Debes ser capaz de 'man sshd'. Creo que el paquete en el que se encuentra es open-ssl, y deberá iniciar el demonio (y detenerlo cuando no lo necesite).

Por supuesto, he instalado sshd, como he mencionado, puedo ssh a la misma terminal del servidor en el iPhone ... pero masilla fallado
user3054879
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.