Suche…


Privater Schlüssel wird nicht akzeptiert (OpenSSH-Clients debuggen)

Standardmäßig sind die meisten Informationen für den Benutzer verborgen. Sie können die -v , um ein ausführliches Protokoll des Verbindungsversuchs abzurufen. In der Regel wird das Problem dadurch ermittelt, dass das Verhalten anders ist als erwartet.

Nehmen wir an, Sie stellen mit ssh (oder einem anderen OpenSSH-Client wie sftp oder scp ) eine Verbindung zum Server example.com , und Ihr privater Schlüssel wird vom Server nicht akzeptiert und der Server fragt nach dem Kennwort (oder lehnt die Verbindung ab):

$ ssh example.com
[email protected]'s password: 

Versuchen Sie, die ssh mit den -vvv , die alle Debug-Meldungen -vvv . Es wird eine Menge Informationen geben, aber nach einiger Zeit ist es leicht zu verstehen, dass:

$ ssh -vvv example.com

Das häufigste Problem ist, dass sich der Schlüssel nicht am erwarteten Ort befindet. Sie können mit ähnlichen Zeilen rechnen, die sich über fehlende Dateien beschweren. Zu prüfen, ob Ihre Datei wirklich gelesen wurde, ist ein guter Anfang:

debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1

Wir können mit dem Authentifizierungsteil fortfahren. Der Schlüssel wird möglicherweise angeboten, aber vom Server aufgrund von Problemen mit der Serverkonfiguration abgelehnt. Das Protokoll könnte irgendwie so aussehen:

debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

FERNHOST-IDENTIFIZIERUNG HAT GEÄNDERT!

Der häufigste Fehler bei der Verwendung von ssh ist, den Fehler ähnlich zu sehen

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.

Dies bedeutet, dass Sie zuvor eine Verbindung mit demselben Server hergestellt haben, und der Server wurde mit verschiedenen Host-Schlüsseln identifiziert. Wenn Sie wissen, dass Sie die Serverschlüssel geändert, den Server neu installiert haben oder der Serveradministrator einige Änderungen angekündigt hat, ist es in der Regel in Ordnung, den alten Schlüssel zu entfernen und den neuen Schlüssel von ssh zu speichern.

Der alte Schlüssel kann mit ssh-keygen transparent entfernt werden:

ssh-keygen -R *IP address*

Bei der nächsten Verbindung sollten Sie den neuen Fingerabdruck überprüfen:

ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)? 

Wenn Sie keine der oben genannten Informationen kennen, wenden Sie sich am besten an Ihren Serveradministrator, um sicherzustellen, dass alles in Ordnung ist. Wenn nicht, kann der potenzielle Angreifer sowohl Ihre Authentifizierungsinformationen als auch alle übertragenen Daten abrufen!

Verbindung abgelehnt

Ein "Connection Refused" -Fehler tritt auf, wenn Ihr Client eine Verbindungsanfrage an einen Remote-Serverhost sendet und der Remote-Host antwortet, dass er die Anfrage nicht akzeptiert. Der Fehler "Verbindung abgelehnt" bedeutet im Wesentlichen, dass der Computer keine Verbindungen zur angeforderten IP-Adresse und zum angeforderten Port akzeptiert.

"Verbindung abgelehnt" kann durch eine Firewall verursacht werden, die Verbindungsanfragen blockiert. Eine Firewall, die zum Blockieren von Verbindungen zu einem bestimmten Endpunkt konfiguriert ist, kann so eingestellt werden, dass Verbindungsanforderungen gelöscht werden. In diesem Fall erhält der Client niemals eine Antwort und führt zu einem Timeout. Oder die Firewall kann auf Verbindungsanforderungen mit einer Ablehnungsantwort antworten.

Abgesehen von Firewalls hat "Verbindung abgelehnt" im Fall von SSH einige mögliche Ursachen:

  • Möglicherweise verwenden Sie die falsche Portnummer, um eine Verbindung herzustellen. Die Standard-Portnummer für SSH ist 22, aber einige Benutzer führen den ssh-Dienst an einem anderen Port aus, um unbefugte Zugriffsversuche zu verhindern.

  • Möglicherweise versuchen Sie, eine Verbindung zum falschen Computer herzustellen. Möglicherweise haben Sie den Hostnamen oder die IP-Adresse falsch eingegeben. Oder der Computer verwendet möglicherweise eine dynamisch zugewiesene Adresse, die sich geändert hat.

  • Der SSH-Serverprozess wird möglicherweise nicht ausgeführt:

    • Es ist möglicherweise noch nicht gestartet, wenn das System gerade gestartet wird.
    • Es wurde möglicherweise deaktiviert. ZB wenn sich das System im Einzelbenutzermodus befindet.
    • Es wurde möglicherweise falsch konfiguriert, sodass der Start fehlschlug.
    • Auf dem Computer ist möglicherweise kein SSH-Server eingerichtet. MS Windows-Systeme enthalten normalerweise keinen SSH-Server. Bei einigen Linux-Systemen ist der SSH-Server möglicherweise eine optionale Komponente. OS X enthält einen SSH-Server, der jedoch standardmäßig deaktiviert ist.
  • Der SSH-Serverprozess wartet möglicherweise nicht auf Verbindungen auf der bestimmten IP-Schnittstelle, zu der Sie eine Verbindung herstellen möchten. Die meisten Computer verfügen über mindestens zwei IP-Schnittstellen, eine "localhost" -Schnittstelle und eine oder mehrere Netzwerkschnittstellen. Jeder aktiven Schnittstelle ist eine IP-Adresse zugeordnet. Ein SSH-Server ist normalerweise so konfiguriert, dass er Verbindungen an einer beliebigen IP-Schnittstelle akzeptiert. Es kann jedoch so konfiguriert werden, dass Verbindungen nur für bestimmte Schnittstellen akzeptiert werden. In diesem Fall lehnt der Computer die Verbindung zu einer IP-Adresse ab, die der SSH-Server nicht überwacht, selbst wenn die Verbindungsanforderung den richtigen Port hat.

  • Der Server verfügt möglicherweise über einen Rückstand von Verbindungsanforderungen an denselben Port. Dies ist selten und ungewöhnlich, aber wenn der Host Verbindungsanforderungen schneller empfängt, als sie gehandhabt werden können, wird der Host möglicherweise neue Verbindungsanforderungen ablehnen.

Beachten Sie, dass, Firewalls beiseite, „Verbindung abgelehnt“ bedeutet , dass Sie mit dem Remote - Computer kommunizieren - es ist zu akzeptieren einfach nicht Ihre Verbindungsanfrage.

Zeitüberschreitung der Verbindung

Ein "Timeout für Verbindung" tritt auf, wenn das Remote-System nicht auf den Versuch des Clients reagiert, eine TCP / IP-Verbindung zu öffnen. Die häufigsten Ursachen sind:

  • Eine Firewall blockiert den Verbindungsversuch für den von Ihnen verwendeten Port:
    • Die Firewall kann sich auf der Clientseite befinden, ausgehende Verbindungen blockieren, auf der Serverseite, eingehende Verbindungen blockieren oder an anderer Stelle im Pfad.
    • Das Hauptproblem könnte sein, dass Sie die falsche Portnummer verwenden.
  • Der Host, zu dem Sie eine Verbindung herstellen möchten, ist möglicherweise offline.
  • Ein Teil des Netzwerks zwischen Client und Server ist möglicherweise ausgefallen oder unterbrochen.
  • Möglicherweise liegt ein Problem beim Netzwerk-Routing vor.

Die Ursache für Verbindungszeitüberschreitungen zu diagnostizieren ist schwierig.

ssh_exchange_identification: read: Verbindung von Peer zurückgesetzt

Diese Fehlermeldung wird möglicherweise vom OpenSSH- ssh Client ssh . Dies bedeutet, dass die TCP-Verbindung zwischen dem Client und dem Server unmittelbar nach der Annahme vom Server abnormal geschlossen wurde. Häufige Gründe für diese Nachricht sind:

  • Der SSH-Serverprozess ist fehlerhaft - er ist beispielsweise abgestürzt.
  • Eine Firewall, ein Router oder ein anderes Netzwerkgerät zwischen Client und Server stört die SSH-Verbindung.

Die Phrasen in der Fehlermeldung zeigen genau an, was passiert ist:

ssh_exchange_identification: 1. Nachdem ein SSH-Client eine Verbindung zu einem SSH-Server hergestellt hat, besteht der erste Schritt beim Starten des SSH-Protokolls darin, dass der Server seine Softwareversion an den Client sendet. Ein Fehler, der "ssh_exchange_identification" enthält, zeigt an, dass der Fehler unmittelbar nach dem Herstellen der TCP-Verbindung aufgetreten ist, während der Client auf die Softwareversion vom Server wartete.

Reset der Verbindung : Ein Reset der Verbindung bedeutet, dass die TCP-Verbindung "abnormal geschlossen" wurde. Sie können dies erhalten, wenn der Softwareprozess, der eine der TCP-Verbindungen hält, abstürzt. Netzwerk-Firewalls können so konfiguriert werden, dass sie das Zurücksetzen von Verbindungen zum Blockieren von TCP-Verbindungen verwenden.

Per Peer bedeutet, dass die TCP-Verbindung vom "anderen Ende" der Verbindung geschlossen wurde. In diesem Fall ist das "andere Ende" der Remote-SSH-Server.

Beachten Sie, dass dieser Fehler keinen Authentifizierungsfehler anzeigt. Der Server hat die TCP-Verbindung sofort nach der Annahme geschlossen. Client und Server haben noch keine Daten ausgetauscht. Der Server hat noch keinen Hostschlüssel an den Client gesendet, und der Client hat noch nicht versucht, sich beim Server zu authentifizieren.

ssh_exchange_identification: Verbindung von Remote-Host geschlossen

Diese Fehlermeldung wird möglicherweise vom OpenSSH-SSH-Client ausgegeben. Dies bedeutet, dass die TCP-Verbindung zwischen dem Client und dem Server unmittelbar nach der Annahme vom Server getrennt wurde. Diese Nachricht weist im Allgemeinen darauf hin, dass der SSH-Server aus irgendeinem Grund so konfiguriert wurde, dass er keine Verbindungen vom Client akzeptiert:

  • Der Server kann so konfiguriert sein, dass er Verbindungen von der IP-Adresse des Clients abweist.
  • Der Server kann mit einer Begrenzung der Anzahl der aktiven SSH-Verbindungen konfiguriert werden.
  • Der Client hat möglicherweise eine Verbindung zu etwas hergestellt, bei dem es sich nicht um einen SSH-Server handelt.

Die Phrasen in der Fehlermeldung zeigen genau an, was passiert ist:

ssh_exchange_identification: 1. Nachdem ein SSH-Client eine Verbindung zu einem SSH-Server hergestellt hat, besteht der erste Schritt beim Starten des SSH-Protokolls darin, dass der Server seine Softwareversion an den Client sendet. Ein Fehler mit "ssh_exchange_identification" gibt an, dass der Fehler unmittelbar nach dem Herstellen der TCP-Verbindung aufgetreten ist, während der Client auf die Softwareversion vom Server wartete.

Verbindung geschlossen: Dies bedeutet, dass die TCP-Verbindung normal geschlossen wurde. Es zeigt an, dass der SSH-Server die Verbindung absichtlich getrennt hat. Dies steht im Gegensatz zu "Connection reset", was darauf hinweisen könnte, dass der SSH-Server abgestürzt ist oder eine Fehlfunktion aufweist.

per Remote-Host bedeutet, dass die TCP-Verbindung vom "anderen Ende" der Verbindung getrennt wurde. In diesem Fall ist das "andere Ende" der Remote-SSH-Server.

Beachten Sie, dass dieser Fehler keinen Authentifizierungsfehler anzeigt. Der Server hat die TCP-Verbindung sofort nach der Annahme geschlossen. Client und Server haben noch keine Daten ausgetauscht. Der Server hat noch keinen Hostschlüssel an den Client gesendet, und der Client hat noch nicht versucht, sich beim Server zu authentifizieren.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow