Comment corriger l'erreur «ssh_exchange_identification: read: Connection reset by peer»?

21

Je ne peux pas me connecter à mon serveur via ssh à l'aide de mon ordinateur, mais je peux me connecter à ce serveur via mon téléphone portable à l'aide de l'application termius. J'ai vérifié /etc/hosts.allowet /etc/hosts.denyet mes iptables, et j'ai également recherché google, il semble qu'aucune réponse ne corresponde à ce problème. Je ne sais pas comment le résoudre, voici la ssh -v 183.17.228.80sortie

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

Je peux cingler ce serveur, voici 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.
user3054879
la source
Pourrait vérifier si vous avez installé DenyHosts, DenyHosts a ses propres fichiers d'autorisation et de refus d'hôtes.
Robby1212
êtes-vous sûr que le logiciel que vous exécutez sur le PC est compatible avec tous les modes de cryptage SSH?
Tharaka Devinda
comme je l'ai mentionné, j'ai vérifié les fichiers hôtes, pas pour DenyHosts
user3054879
Je ne suis pas sûr, peut-être que l'algorithme de cryptage était différent, mais mon client était du mastic .... mais je peux ssh vers le même serveur par terminus sur IOS
user3054879
Du chemin des fichiers clés, je suppose que vous vous connectez en tant que root. Ceci n'est généralement pas activé; regardez votre configuration sshd. ssh -vvvpourrait vous donner plus d'informations.
ridicule

Réponses:

14

Redémarrez simplement votre serveur que vous souhaitez ssh. Cela a fonctionné pour moi, auparavant j'étais confronté au même problème.

Harsh Singhal
la source
1
Impossible de trouver la cause première, mais le redémarrage a fonctionné pour moi.
Raghavendra N
2
J'ai rencontré le même problème lorsque ssh sur mon serveur gratuit sur AWS. Cela est dû au fait que le serveur a épuisé la mémoire. Le redémarrage fonctionne.
leon
@thistleknot, le redémarrage fonctionne pour moi et est une solution rapide et facile. Rien d'horrible à ce sujet. En effet, je ne sais pas ce qui a causé le problème, mais le redémarrage a résolu quelque chose.
CousinCocaine
Si le redémarrage a fonctionné, ce n'est probablement pas un problème de configuration, mais plutôt un problème de ressources. Peut-être que l'augmentation de la priorité de ssh aurait fait l'affaire.
JohnRos
1
redémarrer le serveur est une très très mauvaise suggestion.
Hossein Vatani
8

Cela signifie en fait que votre IP est mise sur liste noire par le serveur. Essayez de mettre votre adresse IP en liste blanche pour pouvoir vous connecter. Vous pouvez jeter un œil à la liste / etc / hosts pour voir si l'adresse IP de votre serveur a changé.

Razz
la source
7
Ce n'est vraiment pas nécessairement le cas.
sempaiscuba
2
Cela semblait être vrai pour moi. J'ai découvert que mon serveur Cloudways avait mis ma liste d'adresses IP sur liste noire et je devais la mettre sur liste blanche manuellement.
Ryan
Le problème a disparu après quelques heures, je ne sais pas pourquoi mais je n'avais pas besoin de redémarrer.
Salem F
Merci pour le commentaire re: "Le serveur Cloudways avait mis sur liste noire mon IP personnelle" - cela venait de nous arriver - manuellement sur la liste blanche et tout va bien.
Jules Matthews
1

L'erreur ci-dessus se produit lorsque vous avez limité la tentative d'échec d'authentification auprès du serveur et que vous avez trop de clés ssh sur votre client (plus que la valeur de MaxAuthTries)

Ce que vous pouvez essayer est d'augmenter la valeur de MaxAuthTries et de redémarrer le démon sshd. Ou vous pouvez limiter le nombre de clés dans votre ~/.sshrépertoire et utiliser des sous-répertoires et un ~/.ssh/configfichier pour définir la clé par hôte / groupe d'hôtes

Roméo Ninov
la source
J'ai essayé cela, mais j'ai échoué, en fait, j'ai presque essayé toutes les méthodes que je peux trouver sur Internet, je suppose que la clé était l'algorithme de chiffrement de la Peugeotiation, mais je ne sais pas comment y remédier
user3054879
2
qu'as-tu essayé? veuillez mettre à jour votre question
Romeo Ninov
1

La façon dont j'ai résolu le problème est que je suis allé sur la machine hôte et j'ai exécuté quelques commandes.

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

Je me suis connecté à la machine après ça.

Sayan Biswas
la source
1

J'ai eu cette même chose, et j'avais besoin de ssh -v 'ip addr', puis j'ai vu que je devais accepter le certificat. Peut également être un mastic de blocage d'ACL ou de règle de route: exemple -

Le client Putty a un addr 10.xxx avec des pare-feu empêchant le réseau d'entreprise de parler aux hôtes DMZ, mais votre téléphone portable au 58.xxx quelle que soit l'adresse IP publique peut parler à l'hôte dmz que vous essayez d'atteindre.

donc je regarde les informations ssh -v lorsque vous essayez de vous reconnecter, voyez si vous pouvez glaner des informations, puis vérifiez s'il existe des règles vous empêchant d'accéder à votre serveur au niveau d'un pare-feu ou d'un routeur, pas dans un fichier denyhosts sur le serveur lui-même.

Danny
la source
0

J'utilise mon hot spot cellulaire pour me connecter au web, alors que je travaillais, la console s'est figée, et je n'ai plus pu me connecter ssh_exchange_identification: read: Connection reset by peer

J'ai essayé de réinitialiser le SRV mais cela n'a pas aidé

Ce n'est que lorsque je change ma connexion réseau (vers un hotspot sur un autre cellulaire) que je peux me reconnecter.

REMARQUE: je peux toujours utiliser l'ancienne connexion pour me connecter à des SRV sur un autre AWS, étrange ...

Elia Weiss
la source
0

Pour résoudre le problème, procédez comme suit:

  1. Redémarrez votre serveur à partir du terminal en ligne du serveur.

Si cela ne fonctionne pas,

  1. Modifier le fichier $HOME/.ssh/known_hosts
  2. Supprimez tout contenu à l'intérieur de ce fichier, lorsqu'il se reconnectera à tous les serveurs que vous utilisez, vous devez alors accepter à nouveau les connexions.
mkmr
la source
1
-1 pour la suppression complète de known_hosts. Il serait préférable de modifier cet hôte particulier en question (bien que je doute que cela vous aide ici).
David Foerster
0

Il peut y avoir de nombreuses raisons, mais l'une des raisons les plus possibles peut être (dans mon cas, c'était) ssh / port 22 n'est pas autorisé par le pare-feu .

Vous pouvez autoriser la connexion ssh par l'interface utilisateur (certains fournisseurs le permettent) ou si vous avez une autre méthode pour vous connecter (par exemple, digitalocean fournit un bouton de console), vous pouvez exécuter la commande ci-dessous

sudo ufw allow ssh
sudo ufw allow 22
BSB
la source
0

Il semble que le démon ssh sur le serveur soit bloqué. Êtes-vous sûr qu'il fonctionne? Lorsque vous telnet à ssh, vous devez voir une signature. Quelque chose comme:

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

Ce que je vois de votre sortie, c'est que le démon ssh ne répond pas côté serveur. Je recommande de se connecter via IP-KVM (ou d'une autre manière) à la machine distante et de redémarrer sshd.

adm.unix
la source
0

Cela peut être dû au fait que vous n'avez pas de serveur openssh en cours d'exécution sur votre ubuntu. Vous pouvez exécuter la commande ci-dessous pour vérifier l'état de votre serveur 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 le statut n'est pas active (running), vous voudrez peut-être installer et / ou démarrer le serveur openssh. Vous pouvez le faire avec les commandes ci-dessous.

sudo apt update
sudo apt install openssh-server
Sasidhar Sekar
la source
0

J'ai eu le même problème mais après avoir redémarré le démon sshd, j'ai pu me connecter à l'hôte.

sudo systemctl restart sshd && systemctl status sshd

Il s'agit uniquement d'une solution temporaire jusqu'à ce que vous augmentiez le paramètre MaxAuthTries.

Kirill Belous
la source
0

Ma solution consiste à ajouter mon adresse IP locale à /etc/hosts.allow:

sshd:192.168.10.88:allow

cela fonctionne pour moi.

avion
la source
-2
  1. Vérifiez que sshd est installé et fonctionne sur le serveur.
  2. Assurez-vous que le démon est installé et démarré. Vous devez être capable de 'man sshd'. Je pense que le paquet dans lequel il se trouve est open-ssl, et vous devrez démarrer le démon (et l'arrêter lorsque vous n'en avez pas besoin).
Bruce Salem
la source
bien sûr j'ai installé sshd, comme je l'ai mentionné, je peux ssh sur le même serveur par terminus sur iphone ... mais putty a échoué
user3054879