So debuggen Sie SSH -Verbindungen

So debuggen Sie SSH -Verbindungen
In diesem Tutorial werden einige schnelle Methoden und Techniken übergeht, mit denen Sie verschiedene SSH -Verbindungen diagnostizieren können, einschließlich der Verbindung, die Sie nicht mit SSH, Authentifizierungsfehlern und solcher Verbindung herstellen können.

NOTIZ: Stellen Sie vor dem Start sicher, dass das Gerät, mit dem Sie eine Verbindung herstellen möchten, online ist und der Fehler nicht auf das Gerät zurückzuführen ist.

Ausgabe 1: SSH -Service nicht ausgeführt

Eine häufige Ursache für SSH -Verbindungsfehler ist der Dienst, der auf dem Remote -Host nicht ausgeführt wird. Dies kann an einem zufälligen Service -Herunterfahren oder Service liegen, das nicht nach dem Neustart eines Systems beginnt.

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

sudo systemctl Status SSHD

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

Lösung

Um SSH -Probleme zu lösen, die durch den nicht ausgeführten Dienst verursacht werden, verwenden Sie das System, um den Dienst zu starten. Wenn der Dienst mit Fehlern reagiert, überprüfen Sie die Protokolle und beheben Sie die im Protokoll gemeldeten Probleme.

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

Grep 'sshd'/var/log/auth.Protokoll

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

sudo systemctl starten sshd

Ausgabe 2: SSH am nicht standardmäßigen Hafen

Das zweite gemeinsame Problem beim Debuggen von SSH-Verbindungen ist die Verwendung eines nicht standardmäßigen Anschlusses. 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 den Port, auf dem SSH ausgeführt wird, ausdrücklich an.

Verwenden Sie ein Tool wie Netstat wie unten, um den Port zu sehen, auf dem SSH ausgeführt wird:

[Centos@Centos8 ~] $ sudo netstat -ptln | Grep Ssh
TCP 0 0 0.0.0.0:56 0.0.0.0:* Hören Sie 1131/SSHD
TCP6 0 0 ::: 56 :::* Hören Sie 1131/SSHD

Die obige Ausgabe zeigt an, 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 in Ihrem SSH -Befehl explizit anzugeben

SSH -Benutzername@ip -p 56

Ausgabe 3: Ein weiterer Dienst, der denselben Port verwendet

Eine weitere Ursache für SSH -Verbindungsfehler ist, wenn ein anderer Dienst oder ein anderer Prozess denselben Port wie der SSH -Dienst verwendet. Wenn beispielsweise SSH explizit angegeben ist, um auf Port 80 (schreckliche Idee) auszuführen, kann ein Dienst wie Apache denselben Port verwendet.

Um anzuzeigen, wenn ein anderer Vorgang denselben Port wie SSH verwendet, überprüfen Sie die Protokolle mit dem Befehl:

sudo journalctl -t sshd

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

SSHD [110611]: Fehler: Binden Sie an Port 80 an 0.0.0.0 fehlgeschlagen: Adresse bereits verwendet

Es ist gut sicherzustellen, dass der Portbindungsfehler durch einen anderen Dienst verursacht wird, nicht durch Sicherheitsmaßnahmen wie Selinux.

Lösung

Es gibt verschiedene Möglichkeiten, wie Sie dieses Problem beheben können. 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 Porteintrag in Port 3009, wie in den Befehlen gezeigt:

sudo nano/etc/ssh/sshd_config
Port 3009

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

sudo systemctl stop httpd
sudo systemctl deaktivieren httpd

Ausgabe 4: Firewall

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

Lösung

Die Firewall -Regeln sind weit und können je nach Systemkonfiguration variieren. Daher kann ich nicht jeden Aspekt abdecken. Das Folgende ist jedoch eine einfache Lösung, um sicherzustellen, dass der SSH -Service bei UFW Firewall zulässig ist.

sudo ufw erlauben /TCP

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

sudo ufw zurücksetzen

Ausgabe 5: Anmeldungen für behinderte Passwort

Manchmal können Sie SSH konfigurieren, um keine Kennwortanmeldungen zu akzeptieren und nur die Authentifizierung der öffentlichen Key zu verwenden. Dies kann ein Problem verursachen, wenn der öffentliche Schlüssel auf dem Server nicht verfügbar ist oder Ihr privates Schlüsselpaar fehlt.

Um zu überprüfen, ob die Kennwortanmeldungen zulässig sind, cat die SSH -Konfiguration als:

[Centos@Centos8] $ sudo grep passwayAuthentication/etc/ssh/sshd_config
#PasswordAuthentication Ja
PasswortAuthentication Ja
# PasswordAuthentication. Abhängig von Ihrer PAM -Konfiguration,
# PAM -Authentifizierung, dann aktivieren Sie dies, setzen Sie jedoch die PasswordAuthentication fest,

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

Lösung

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

Wenn Sie den Wert auf Nein festgelegt haben.

Die andere Methode besteht darin, ein SSH-Schlüsselwertpaar zu erstellen und sich beim Server anzumelden. Verwenden Sie die folgende Anleitung, um zu erfahren.

https: // linuxHint.com/find-ssh-öffentlicher Key/

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

Abschluss

In diesem schnellen Leitfaden haben wir wichtige Ursachen für SSH -Verbindungsfehler und darüber, wie Sie sie beheben können. Obwohl dieser Leitfaden gemeinsame Probleme behandelt, finden Sie möglicherweise Fehler, die für Ihr System basierend auf der Konfiguration und Berechtigungen spezifisch sind.