So debuggen Sie SSH-Verbindungen

How Debug Ssh Connections



In diesem Tutorial werden einige schnelle Methoden und Techniken erläutert, mit denen Sie verschiedene SSH-Verbindungen diagnostizieren können, einschließlich wenn Sie keine Verbindung zu SSH herstellen können, Authentifizierungsfehler und dergleichen.

HINWEIS: Bevor Sie beginnen, stellen Sie sicher, dass das Gerät, zu dem Sie eine Verbindung herstellen möchten, online ist und der Fehler nicht darauf zurückzuführen ist, dass das Gerät nicht verfügbar ist.







Problem 1: SSH-Dienst wird nicht ausgeführt

Eine häufige Ursache für SSH-Verbindungsfehler ist, dass der Dienst auf dem Remote-Host nicht ausgeführt wird. Dies kann daran liegen, dass der Dienst versehentlich heruntergefahren wurde oder der Dienst nach einem Systemneustart nicht gestartet wurde.



Um zu überprüfen, ob der SSH-Dienst ausgeführt wird, verwenden Sie den Systemmanager mit dem folgenden Befehl:



sudosystemctl-status sshd

Der obige Befehl sollte melden, ob der Dienst ausgeführt wird oder nicht, wie in den Screenshots unten gezeigt.







Lösung

Um SSH-Probleme zu beheben, die dadurch verursacht werden, dass der Dienst nicht ausgeführt wird, verwenden Sie das System, um den Dienst zu starten. Wenn der Dienst mit Fehlern antwortet, überprüfen Sie die Protokolle und beheben Sie die im Protokoll gemeldeten Probleme.

Verwenden Sie den folgenden Befehl, um die Dienstprotokolle zu überprüfen.

Griff 'sshd' /wo/Protokoll/auth.log

Verwenden Sie den folgenden Befehl, um den SSH-Dienst mit systemd zu starten oder zu stoppen.

sudosystemctl start sshd

Problem 2: SSH auf einem nicht standardmäßigen Port

Das zweite häufige Problem beim Debuggen von SSH-Verbindungen ist die Verwendung eines nicht standardmäßigen Ports. Wenn SSH auf einem anderen Port als dem Standardport 22 ausgeführt wird, stellen Sie keine Verbindung zum Remote-Host her, es sei denn, Sie geben explizit den Port an, auf dem SSH ausgeführt wird.

Um den Port anzuzeigen, auf dem SSH ausgeführt wird, verwenden Sie ein Tool wie netstat wie folgt:

[Hunderte@centos8 ~]$sudo netstat -ptln | Griff ssh
tcp0 00.0.0.0:560.0.0.0:*HÖREN1131/sshd
tcp60 0:::56:::*HÖREN1131/sshd

Die obige Ausgabe zeigt, auf welchem ​​Port der SSH-Dienst ausgeführt wird. In diesem Fall ist es Port 56.

Lösung

Um dieses Problem zu beheben, können Sie die Informationen von netstat verwenden, um den Port explizit in Ihrem ssh-Befehl anzugeben:

sshNutzername@ip -P 56

Problem 3: Ein anderer Dienst verwendet denselben Port

Eine weitere Ursache für SSH-Verbindungsfehler besteht darin, dass ein anderer Dienst oder Prozess ebenfalls denselben Port wie der SSH-Dienst verwendet. Wenn beispielsweise SSH explizit für die Ausführung auf Port 80 angegeben ist (schreckliche Idee), verwendet ein Dienst wie Apache möglicherweise denselben Port.

Um zu sehen, ob ein anderer Prozess denselben Port wie SSH verwendet, überprüfen Sie die Protokolle mit dem folgenden Befehl:

sudojournalctl-Tsshd

Dieser Befehl sollte einen Fehler wie den unten gezeigten zurückgeben, der angibt, ob ein anderer Prozess den SSH-gebundenen Port verwendet.

sshd[110611]: Fehler: An Port binden80bei 0.0.0.0 fehlgeschlagen: Adresse bereitsinverwenden

Es ist gut sicherzustellen, dass der Portbindungsfehler von einem anderen Dienst verursacht wird und nicht von Sicherheitsmaßnahmen wie SELinux.

Lösung

Es gibt verschiedene Möglichkeiten, dieses Problem zu beheben. Diese beinhalten:

Die erste besteht darin, den SSH-Dienst an einen anderen Port zu binden. Sie können dies tun, indem Sie die SSH-Konfigurationsdatei bearbeiten. Ändern Sie beispielsweise den Port-Eintrag in Port 3009, wie in den Befehlen gezeigt:

sudo nano /etc/ssh/sshd_config
Hafen3009

Eine andere Methode, mit der Sie dieses Problem beheben können, besteht darin, den Dienst über den SSH-Port zu beenden. Stoppen Sie beispielsweise den Apache-Dienst mit Port 80 als:

sudosystemctl stop httpd
sudosystemctl deaktivieren httpd

Problem 4: Firewall

Wenn Sie alle oben genannten Methoden ausprobiert haben und immer noch keine SSH-Verbindung bestehen, können Sie mit der nächsten möglichen Ursache des Problems fortfahren: Firewall-Einschränkungen. Je nach verwendeter Firewall-Methode (UFW oder Iptables) müssen Sie sicherstellen, dass die Firewall SSH-Verbindungen zulässt.

Lösung

Firewall-Regeln sind breit gefächert und können je nach Systemkonfiguration variieren. Daher kann ich nicht alle Aspekte abdecken. Im Folgenden finden Sie jedoch eine einfache Lösung, um sicherzustellen, dass der SSH-Dienst auf der UFW-Firewall zulässig ist.

sudoufw erlauben<ssh_port> /tcp

Sie können auch alle UFW-Regeln zurücksetzen und von vorne beginnen. Auf diese Weise können Sie die Firewall-Verbindungen von Grund auf neu beheben.

sudoufw zurücksetzen

Problem 5: Deaktivierte Passwortanmeldungen

Manchmal können Sie SSH so konfigurieren, dass keine Kennwortanmeldungen akzeptiert werden und nur die Authentifizierung mit öffentlichem Schlüssel verwendet wird. Dies kann zu Problemen führen, wenn der öffentliche Schlüssel auf dem Server nicht verfügbar ist oder Ihr privates Schlüsselpaar fehlt.

Um zu überprüfen, ob Kennwortanmeldungen zulässig sind, ordnen Sie die ssh-Konfiguration wie folgt ein:

[Hunderte@Centos8]$sudo GriffPasswortAuthentifizierung/etc/ssh/sshd_config
#PasswortAuthentifizierung ja
PasswortAuthentifizierungJawohl
# Passwort-Authentifizierung. Abhängig von Ihrer PAM-Konfiguration,
# PAM-Authentifizierung, dann aktiviere diese, aber setze PasswordAuthentication

Die obige Ausgabe zeigt, dass Kennwortanmeldungen zulässig sind.

Lösung

Um das obige Problem zu beheben, können Sie zwei Methoden verwenden:

Wenn der Wert auf no gesetzt ist, ändern Sie zunächst den Wert von PasswordAuthentication in yes und starten Sie den SSH-Dienst neu.

Die andere Methode besteht darin, ein ssh-Schlüssel-Wert-Paar zu erstellen und es zum Anmelden beim Server zu verwenden. Um zu erfahren, wie Sie ein SSH-Schlüssel-Wert-Paar erstellen, verwenden Sie die folgende Anleitung.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Abschluss

In dieser Kurzanleitung haben wir die Hauptursachen für SSH-Verbindungsfehler und deren Behebung besprochen. Obwohl in diesem Handbuch häufige Probleme behandelt werden, können Sie je nach Konfiguration und Berechtigungen Fehler finden, die für Ihr System spezifisch sind.