SSH-Verbindung: ssh_exchange_identifcation

9

Ich habe seit ungefähr einem Monat eine Verbindung zu einem Remote-Server über meinen Mac hergestellt. In letzter Zeit habe ich versucht, eine Verbindung mit ssh dylan @ MY_IP herzustellen, und diese Nachricht erhalten.

ssh_exchange_identification: read: Connection reset by peer

Ich habe auch einige diagnostische Informationen ...

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

Nachdem ich einige Nachforschungen angestellt hatte, versuchte ich Folgendes ...

  1. Meinen Router neu gestartet
  2. Meine Datei "unknown_hosts" wurde gelöscht
  3. Meine "bekannte_Hosts" -Datei wurde gelöscht
  4. Mein DHCP wurde freigegeben und erneuert
  5. Ich habe auch versucht, Putty von einem anderen Gerät (Windows) mit einem Fehler zu verwenden

Beachten Sie, dass ich keine Änderungen am Server vorgenommen habe, um diese Kommunikation zu verhindern.

Ich bin mir auch nicht sicher, ob dies Probleme verursachen würde, aber ich habe eine Verbindung über den Domainnamen und die IP-Adresse hergestellt.

Außerdem konnte ich erfolgreich eine Verbindung von einer anderen IP-Adresse herstellen.

Ich weiß, dass dies ein großes Problem mit vielen Ressourcen ist, aber viele der Lösungen haben nicht funktioniert, und ich habe auch keine Lösung für irgendjemanden gesehen.

Aktualisieren

Ich habe es auf Protokoll 1 gezwungen. Anstelle von "Verbindung durch Peer zurücksetzen" wird jetzt "Verbindung vom Remote-Host geschlossen" angezeigt. Das Ausführen mit Debug-Informationen ergab Folgendes:

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
quelle
Verwenden Sie die Authentifizierung mit öffentlichem Schlüssel? Hast du einen Schlüssel /Users/watson/.ssh/id_dsa? Versuchen Sie, die Datei zu sichern und zu entfernen.
Pabouk
Ich verwende keine Authentifizierung mit öffentlichem Schlüssel. Die Datei enthält jedoch einen einzelnen Schlüssel. Ich habe versucht, die Datei zu entfernen, aber es wurde keine Änderung vorgenommen. Der Befehl wird ausgeführt.
Dylan
Wenn es ein Problem mit der Protokollversion ist, können Sie die Verbindung mit Protokollversion 1 mitssh -1 ...
wkaha
Siehe neue Bearbeitung auf Post.
Dylan

Antworten:

4

Auf diese Weise habe ich den Fehler "ssh_exchange_identification: Verbindung vom Remote-Host geschlossen" beim Herstellen einer Verbindung zu einem SSH-Server behoben.

Ich habe diesen Fehler beim Versuch, eine Verbindung zu einem eingebetteten Linux-Computer herzustellen, nachdem ich ein Paket in root entpackt habe. Viele Bibliotheksdateien wurden ersetzt, einschließlich libssl.

Versuche zu verbinden:

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

Googeln schien nur darauf hinzudeuten, hosts.deny und hosts.allow zu überprüfen, aber mein Zielcomputer hatte keine solchen Dateien.

Nach einem Neustart (gemäß Karthiks Vorschlag) lief sshd nicht. Ich habe versucht, sshd manuell auf dem Ziel zu starten:

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

Ich habe /usr/lib/libssl.a durch die Originalversion ersetzt und sshd gestartet und die Dinge waren wieder normal. Das Problem wurde in meinem Fall durch eine falsche Version in dem Paket verursacht, das ich ursprünglich in root entpackt hatte.

Chetic
quelle
3

Ich habe den gleichen Fehler erhalten (aber von jedem Computer, einschließlich des störenden Computers über ssh localhost).

Es begann, als ich ein Benutzerprofil migrierte. dh nach dem Kopieren von Dateien als root, dann hat Befehle wiechown -R username /Users/username/Destop

Trotzdem völlig unsicher, warum / var / empty Besitzer in Benutzername geändert wurde, aber sshdefinitiv /var/emptyim Besitz von root sein muss (sonst erhalten Sie ssh_exchange_identification: read: Connection reset by peer):

    sudo chown root /var/empty
hunter3740
quelle
Vielen Dank! Der Besitzerwechsel hat /var/emptydas Problem für mich behoben.
Yevhen Pavliuk
1

Dies ist kein Problem mit Ihrem lokalen Computer, sondern ein Problem auf der Serverseite. Es kann mehrere Faktoren geben, die dieses Problem verursachen:

  1. Änderungen in der Konfiguration /etc/hosts.allow oder /etc/hosts.deny auf dem Remote-Server.
  2. Schwere Serverlast.

Wenn ich in der Vergangenheit diese Probleme hatte, habe ich eines von zwei Dingen in der folgenden Reihenfolge ausgeführt:

  1. Ändern Sie die Datei /etc/hosts.allow wie im obigen Artikel angegeben. (und starten Sie den SSH-Server neu)
  2. Wenn /etc/hosts.allow bereits so ist, wie es sein muss, starten Sie einfach den SSH-Server neu (und seien Sie vorsichtig, wenn Sie dies tun!)
  3. Wenn der Neustart nicht funktioniert, generieren Sie die Serverschlüssel neu und starten Sie den SSH-Server neu (dies ist riskant, da jeder Benutzer, der sich bei diesem Computer anmeldet, eine Fehlermeldung erhält, dass der Server die Schlüssel geändert hat).

Meistens löst 1 das Problem, aber ich musste in einigen Fällen 2 tun. Ich konnte nicht herausfinden, warum dies der Fall ist, nur dass es funktioniert hat. Vielleicht hat es etwas mit der Art und Weise zu tun, wie der Schlüssel präsentiert wird, oder vielleicht wurde er auf irgendeine Weise beschädigt - ich bin mir nicht sicher. Was ich jedoch weiß, ist, dass der Fehler ausschließlich mit dem Server zu tun hat und wie der Handshake auftritt, wenn die SSH-Verbindung hergestellt wird.

Karthik Rangarajan
quelle
1

Ich hatte SSH mit Cygwin eingerichtet und in meinem Fall war es die Windows-Firewall, die genau diesen Fehler verursachte. Stellen Sie daher sicher, dass Verbindungen zu Port 22 zulässig sind.

anonym
quelle
0

Ich habe es wirklich leicht geschafft, dieses Problem selbst zu lösen.

In normalem OS X können Sie dies lösen, indem Sie einfach "Remote Login" in den Systemeinstellungen / Freigabe umschalten.

Wenn es sich jedoch um einen Headless-Server handelt (wie in meinem Fall), können Sie mit der OSX Server-App zu (Ihrem Servernamen) / Einstellungen wechseln und "Sichere Shell-Verbindungen ein- und ausschalten" aktivieren.

Sirenen
quelle
1
Ich habe auch festgestellt, wie Sie das Problem umgehen können, aber es behebt es nicht: Das Deaktivieren der Remote-Anmeldung wirkt sich stark auf das System aus, und das Umschalten der Remote-Anmeldung jedes Mal, wenn Sie an einen bestimmten Ort ssh möchten, ist keine praktikable Lösung .
Ant6n
Ja, das ist immer noch ein schreckliches Problem, das ich habe. Ich habe gerade ein Root-Cron-Skript erstellt, das den Dienst jede Mitternacht neu startet.
Sirenen
0

Wenn Sie einen privaten Schlüssel oder einen Sicherheitsschlüssel verwenden, um sich bei Ihrem Server anzumelden, müssen Sie die Berechtigung für die Schlüsseldatei mithilfe des Befehls in 660 ändern

sudo chmod 660 Dateiname

Srijan Chaudhary
quelle
1
(1) Obwohl dies die Ursache dafür sein kann, dass es sshnicht funktioniert, ist nicht klar, wie dieses Problem einem funktionierenden System zufällig zufügen würde. (2) Diese Antwort wäre nützlicher, wenn Sie die Datei, über die Sie sprechen, identifiziert oder Anweisungen gegeben haben, damit ein Benutzer sie identifizieren kann. (3) Ich denke, Sie sprechen von einer Datei im (unter) dem Home-Verzeichnis des Benutzers. Wenn das der Fall ist, sudosollte das nicht nötig sein.
Scott