GNU/Linux >> LINUX-Kenntnisse >  >> Linux

ssh_exchange_identification:Verbindung vom entfernten Host geschlossen (ohne hosts.deny)

Ursprünglich auf Ask Ubuntu gepostet

Wenn Sie "externe" Faktoren ausgeschlossen haben, helfen die folgenden Schritte normalerweise, sie einzugrenzen. Obwohl dies Ihre Frage nicht direkt beantwortet, kann es helfen, die Fehlerursache aufzuspüren.

Fehlerbehebung sshd

Was ich in solchen Fällen im Allgemeinen sehr nützlich finde, ist, sshd zu starten ohne es dämonisieren zu lassen. Das Problem in meinem Fall war, dass weder syslog noch auth.log nichts Sinnvolles gezeigt.

Als ich es vom Terminal aus gestartet habe, bekam ich:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Viel besser! Diese Fehlermeldung ermöglichte es mir, zu sehen, was falsch ist, und es zu beheben. Keine der Protokolldateien enthielt diese Ausgabe.

Hinweis: zumindest auf Ubuntu der $(which sshd) ist die beste Methode, um sshd zu erfüllen Erfordernis eines absoluten Pfades. Andernfalls erhalten Sie den folgenden Fehler:sshd re-exec requires execution with an absolute path . Die -p 10222 macht sshd lauschen Sie auf diesem alternativen Port und überschreiben Sie die Konfigurationsdatei - dies geschieht, damit es nicht mit möglicherweise ausgeführtem sshd kollidiert Instanzen. Stellen Sie sicher, dass Sie hier einen freien Port auswählen.

Zum Schluss:Verbinden Sie sich mit dem alternativen Port (ssh -p 10222 [email protected] ).

Diese Methode hat mir viele Male geholfen, Probleme zu finden, seien es Authentifizierungsprobleme oder andere Arten. Um eine wirklich ausführliche Ausgabe zu stdout zu erhalten , verwenden Sie $(which sshd) -Ddddp 10222 (beachten Sie den hinzugefügten dd um die Ausführlichkeit zu erhöhen). Für mehr Debugging-Güte überprüfen Sie man sshd .

Der Hauptvorteil dieser Methode besteht darin, dass Sie den sshd überprüfen können Konfiguration ohne sshd neu starten müssen auf dem Standardport. Normalerweise Dies sollte bestehende SSH-Verbindungen nicht stören, aber ich habe es gesehen. Auf diese Weise kann man die Konfigurationsdatei validieren, bevor man – möglicherweise – den Zugriff auf einen Remote-Server sperrt (zum Beispiel habe ich das für einige VPS und sogar für physische Server, bei denen ich extra bezahlen muss, um Out-of-Band-Zugriff zu erhalten zur Maschine).


Sie können auch einen Host haben, dessen Speicher so stark fragmentiert ist, dass er einer Seite keinen zusammenhängenden Speicher zuweisen kann, um den Prozess zum Hosten einer SSH-Sitzung zu forken.

In einem solchen Fall können Sie eine der folgenden Meldungen erhalten:

ssh_exchange_identification: read: Connection reset by peer

oder:

Connection closed by aaa.bbb.ccc.ddd

abhängig davon, wie weit der Host kommt, bevor er aussteigt.

Wenn die Speicherfragmentierung die offensichtliche Ursache ist, besteht die Lösung darin, auf andere Weise auf den Server zuzugreifen und einige der relevanten Dienste neu zu starten. Ich habe festgestellt, dass Apache und MySQL die Schuldigen auf VMs sind, da VMs keine Swap-Partition haben. Andernfalls starten Sie den Host neu.


Nur für den Fall, denn das ist mir passiert. Stellen Sie sicher, dass sshd auf dem Host ausgeführt wird!

Es ist ein dummer Fehler, aber es könnte wirklich Ihr Problem sein.


Linux
  1. Holen Sie sich Unterstützung, indem Sie den Live-Chat verwenden

  2. Bedienen Sie mehrere Domains mithilfe virtueller Hosts

  3. So erlauben Sie eine Remoteverbindung zur PostgreSQL-Datenbank mit psql

  4. Array in Bash nicht gefunden

  5. Telnet kann keine Verbindung herstellen:Verbindung von fremdem Host geschlossen

So beheben Sie ssh_exchange_identification:read:Connection reset by peer Error

So verwalten Sie Remote-Windows-Hosts mit Ansible

Keine Internetverbindung auf Virtualbox (Windows 7 als Gast, Ubuntu 13.04 als Host)?

Verwalten von dedizierten Hosts

Wie füge ich eine Remote-MySQL-Verbindung unter Linux hinzu?

So sichern Sie einen Remote-Linux-Host mit dem Dienstprogramm rsnapshot rsync