Wie kann man den Fehler „ssh_exchange_identification: read: Connection reset by peer“ beheben?


20

Ich kann mit meinem Computer keine Verbindung über ssh zu meinem Server herstellen, aber ich kann mit termius app über mein Handy eine Verbindung zu diesem Server herstellen. Ich habe /etc/hosts.allowund /etc/hosts.denyund meine iptables überprüft , und ich habe alse google gesucht, es scheint, dass keine Antwort zu diesem Problem passt. Ich weiß nicht, wie ich es lösen soll, hier ist die ssh -v 183.17.228.80Ausgabe

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

Ich kann diesen Server anpingen, hier ist 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.

Möglicherweise möchten Sie überprüfen, ob DenyHosts installiert ist. DenyHosts verfügt über eigene Dateien zum Zulassen und Verweigern von Hosts.
Robby1212

Sind Sie sicher, dass die auf dem PC ausgeführte Software mit allen SSH-Verschlüsselungsmodi kompatibel ist?
Tharaka Devinda

Wie bereits erwähnt, habe ich Hosts-Dateien überprüft, nicht für DenyHosts
user3054879

Ich bin nicht sicher, vielleicht der encrytion Algorithmus war anders, aber mein Klient war Kitt .... aber ich kann Terminus auf IOS auf den gleichen Server ssh
user3054879

Vom Pfad der Schlüsseldateien nehme ich an, dass Sie als verbinden root. Dies ist normalerweise nicht aktiviert. Schau dir deine sshd Konfiguration an. ssh -vvvkönnte Ihnen weitere Informationen geben.
ridgy

Antworten:


11

Starten Sie einfach Ihren Server neu, den Sie ssh möchten. Es hat bei mir funktioniert, vorher hatte ich das gleiche Problem.


1
Die Ursache konnte nicht gefunden werden, aber der Neustart hat bei mir funktioniert.
Raghavendra N

2
Ich bin auf dasselbe Problem gestoßen, als ich auf meinem kostenlosen Server unter AWS ssh ausgeführt habe. Es liegt daran, dass der Server über genügend Speicher verfügt. Neustart funktioniert.
Leon

@thistleknot, Neustart funktioniert bei mir und ist eine einfache, schnelle Lösung. Nichts Schlimmes. In der Tat weiß ich nicht, was das Problem verursacht hat, aber ein Neustart hat etwas behoben.
CousinCocaine

Wenn ein Neustart funktioniert hat, handelt es sich wahrscheinlich nicht um ein Konfigurationsproblem, sondern um ein Ressourcenproblem. Vielleicht hat es geholfen, die Priorität von ssh zu erhöhen.
JohnRos

1
Neustart des Servers ist ein sehr, sehr schlechter Vorschlag.
Hossein Vatani

7

Das bedeutet eigentlich, dass Ihre IP vom Server auf die schwarze Liste gesetzt wird. Versuchen Sie, Ihre IP-Adresse auf eine Whitelist zu setzen, um sich anmelden zu können. Sie können in der Liste / etc / hosts nachsehen, ob sich die IP-Adresse Ihres Servers geändert hat.


7
Das ist wirklich nicht unbedingt der Fall.
Sempaiscuba

2
Das schien für mich zu stimmen. Ich fand heraus, dass mein Cloudways-Server meine Heim-IP auf eine schwarze Liste gesetzt hatte und ich musste sie manuell auf die Whitelist setzen.
Ryan

Das Problem verschwand nach ein paar Stunden, ich weiß nicht warum, aber ich musste nicht neu starten.
Salem F

Vielen Dank für den Kommentar zu "Der Cloudways-Server hat meine private IP-Adresse auf die schwarze Liste gesetzt" - dies war uns gerade passiert - manuell auf die Whitelist gesetzt und alles in Ordnung.
Jules Matthews

1

Der obige Fehler tritt auf, wenn Sie die maximale Anzahl fehlgeschlagener Authentifizierungsversuche beim Server haben und auf Ihrem Client zu viele SSH-Schlüssel vorhanden sind (mehr als der Wert von MaxAuthTries).

Sie können versuchen, den Wert von MaxAuthTries zu erhöhen und den sshd-Daemon neu zu starten. Oder Sie können die Anzahl der Schlüssel in Ihrem ~/.sshVerzeichnis begrenzen und mithilfe von Unterverzeichnissen und ~/.ssh/configDateien Schlüssel pro Host / Hostgruppe definieren


Ich habe dies versucht, scheiterte aber in der Tat ich jede Methode fast habe ich versucht , im Internet finden kann, ich denke , der Schlüssel Verschlüsselung negeotiation Algorithmus war, aber ich weiß nicht , wie es zu beheben
user3054879

2
was hast du versucht Bitte aktualisieren Sie Ihre Frage
Romeo Ninov

1

Die Art, wie ich das Problem gelöst habe, ist, dass ich zum Hostcomputer gegangen bin und einige Befehle ausgeführt habe.

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

Danach wurde ich mit der Maschine verbunden.


1

Ich hatte das gleiche passiert und musste ssh -v 'ip addr' und dann sah ich, dass ich das Zertifikat akzeptieren musste. Es kann sich auch um einen ACL- oder Route-Rule-Blocking-Kitt handeln: Beispiel -

Der Putty-Client verfügt über eine 10.xxx-Adresse mit Firewalls, die verhindert, dass das Unternehmensnetzwerk mit DMZ-Hosts kommuniziert. Ihr Mobiltelefon kann jedoch unter 58.xxx mit dem DMZ-Host kommunizieren, den Sie zu erreichen versuchen.

Ich würde also die ssh -v-Informationen prüfen, wenn Sie erneut versuchen, eine Verbindung herzustellen, ob Sie Informationen abrufen können, und dann prüfen, ob Regeln vorhanden sind, die verhindern, dass Sie auf Firewall- oder Routerebene zu Ihrem Server gelangen, nicht in einem Denyhosts-Datei auf dem Server selbst.


0

Ich verwende meinen Mobilfunk-Hotspot, um eine Verbindung zum Internet herzustellen, während ich an der Konsole gearbeitet habe. Die Verbindung konnte nicht mehr hergestellt werden ssh_exchange_identification: read: Connection reset by peer

Ich habe versucht, das SRV zurückzusetzen, aber es hat nicht geholfen

Nur wenn ich meine Netzwerkverbindung ändere (zu einem Hotspot auf einem anderen Mobiltelefon), kann ich erneut eine Verbindung herstellen.

ANMERKUNG: Ich kann die alte Verbindung weiterhin verwenden, um eine Verbindung zu SRVs auf einem anderen AWS herzustellen, seltsam ...


0

Um das Problem zu beheben, gehen Sie wie folgt vor:

  1. Starten Sie Ihren Server vom Server-Online-Terminal neu.

Wenn dies nicht funktioniert,

  1. Bearbeiten Sie die Datei $HOME/.ssh/known_hosts
  2. Löschen Sie alle Inhalte in dieser Datei. Wenn die Verbindung zu Servern wiederhergestellt wird, die Sie verwenden, müssen Sie die Verbindungen erneut akzeptieren.

1
-1 für das vollständige Löschen von known_hosts. Es wäre besser, diesen bestimmten Host zu bearbeiten (obwohl ich bezweifle, dass dies hier hilfreich sein wird).
David Foerster


0

Es mag viele Gründe geben, aber einer der wahrscheinlichsten Gründe ist (in meinem Fall), dass ssh / port 22 von der Firewall nicht zugelassen wird .

Sie können die ssh-Verbindung über die Benutzeroberfläche zulassen (einige Anbieter erlauben dies) oder Sie können den folgenden Befehl ausführen, wenn Sie eine alternative Anmeldemethode haben (z. B. digitalocean stellt eine Konsolenschaltfläche bereit)

sudo ufw allow ssh
sudo ufw allow 22

0

Es sieht so aus, als ob der ssh-Daemon auf dem Server hängt. Bist du sicher, dass es läuft? Wenn Sie zu ssh telneten, müssen Sie eine Signatur sehen. Etwas wie:

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

Was ich aus Ihrer Ausgabe sehe, ist, dass der ssh-Daemon auf der Serverseite nicht reagiert. Ich empfehle, über IP-KVM (oder auf andere Weise) eine Verbindung zum Remote-Computer herzustellen und sshd neu zu starten.


0

Dies kann daran liegen, dass auf Ihrem Ubuntu kein openssh-Server ausgeführt wird. Sie können den folgenden Befehl ausführen, um den Status Ihres openssh-Servers zu überprüfen.

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)

Wenn der Status nicht ist active (running), möchten Sie möglicherweise den openssh-Server installieren und / oder starten. Sie können dies mit den unten gezeigten Befehlen tun.

sudo apt update
sudo apt install openssh-server

0

Ich hatte das gleiche Problem, aber nach dem Neustart des sshd-Daemons konnte ich eine Verbindung zum Host herstellen.

sudo systemctl restart sshd && systemctl status sshd

Dies ist nur eine vorübergehende Problemumgehung, bis Sie den Parameter MaxAuthTries erhöhen.


-2
  1. Überprüfen Sie, ob sshd auf dem Server installiert ist und ausgeführt wird.
  2. Stellen Sie sicher, dass der Daemon installiert und gestartet ist. Sie müssen in der Lage sein, "sshd" zu managen. Ich denke, das Paket, in dem es sich befindet, ist open-ssl, und Sie müssen den Dämon starten (und ihn stoppen, wenn Sie ihn nicht benötigen.).

natürlich habe ich sshd installiert, wie gesagt, ich kann ssh per terminus auf dem iphone auf den gleichen server laden ... aber
putty ist
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.