SSH ist ein Netzwerkprotokoll, mit dem Sie sicher über ein Netzwerk auf ein Remote-System zugreifen und dieses verwalten können. Beim Herstellen einer Verbindung zu einem Remotecomputer über SSH ist möglicherweise der Fehler „Verbindung abgelehnt“ aufgetreten. Das Auftreten dieses Problems kann frustrierend sein, insbesondere wenn Sie ein Systemadministrator sind und dringend einige Aufgaben auf dem Remote-System ausführen müssen.
Sehen wir uns einige der möglichen Ursachen für den SSH-Fehler „Verbindung abgelehnt“ und Methoden zu seiner Behebung an.
1. Überprüfen Sie, ob ein SSH-Server installiert ist
Eine mögliche Ursache für den Fehler „Verbindung abgelehnt“ ist, dass der Remote-Computer nicht läuft ein SSH-Server. Ohne den SSH-Server akzeptiert der Computer keine eingehenden SSH-Verbindungen und Sie können nicht remote darauf zugreifen.
Der allererste Schritt zur Fehlerbehebung besteht also darin, zu überprüfen, ob auf dem Remote-Computer ein SSH-Server installiert ist. Verwenden Sie den folgenden Befehl, um die Installation des SSH-Servers zu überprüfen:
Auf Debian-basierten Distributionen:
dpkg --list | grep ssh
Auf RHEL-basierten Distributionen:
yum-Liste installiert | grep ssh
Auf openSUSE:
zypper-Suche -i | grep ssh
Auf Arch-basierten Distributionen:
pacman-Q | grep ssh
Wenn der SSH-Server auf dem Remote-Computer installiert ist, wird er in der Ausgabe aufgelistet. Andernfalls müssen Sie Installieren Sie den OpenSSH-Server auf dem Remote-Computer auf die Sie per SSH zugreifen möchten. OpenSSH ist eine Open-Source-Version der SSH-Tools für den Fernzugriff und die Fernsteuerung von Systemen.
Verwenden Sie die folgenden Befehle, um den OpenSSH-Server zu installieren:
Auf Debian-basierten Distributionen:
sudo apt install openssh-server
Auf RHEL-basierten Distributionen:
sudo yum install openssh-server
Auf openSUSE:
sudo zypper install openssh
Auf Arch-basierten Distributionen:
pacman -S openssh
2. Überprüfen Sie den SSH-Dienststatus
Ein weiterer Grund für den Fehler „Verbindung abgelehnt“ kann sein, dass der SSH-Dienst deaktiviert ist oder auf dem Remote-Computer nicht ausgeführt wird. Sobald Sie sicher sind, dass der SSH-Server installiert ist, müssen Sie als Zweites den Status des Servers überprüfen.
sudo systemctl status sshd
Wenn der Dienst aktiv ist und ausgeführt wird, zeigt die Ausgabe dies an aktiv (laufend). Andernfalls sehen Sie so etwas wie inaktiv (tot).
Wenn der SSH-Server nicht läuft, können Sie ihn mit dem folgenden Befehl manuell starten:
sudo systemctl sshd starten
Sie können den Dienst auch so aktivieren, dass er beim Booten automatisch gestartet wird mit:
sudo systemctl sshd aktivieren
3. Überprüfen Sie den SSH-Port
Standardmäßig läuft der SSH-Server auf Port 22. Man kann jedoch den Standardport ändern. Wenn Sie daher den SSH-Fehler „Verbindung abgelehnt“ erhalten, kann dies daran liegen, dass Sie versuchen, eine Verbindung zum SSH-Server über den Standardport 22 herzustellen, während er auf einem anderen Port ausgeführt wird.
Du kannst Verwenden Sie den netstat-Befehl mit grep, um den Port zu finden, auf dem der SSH-Server lauscht:
sudo netstat -plntu | grep ssh
Den SSH-Port finden Sie auch in der sshd_config Datei mit dem folgenden Befehl:
grep port /etc/ssh/sshd_config
Nachdem Sie den richtigen SSH-Port identifiziert haben, versuchen Sie, sich über diesen spezifischen Port mit Ihrem Remote-System zu verbinden.
4. Überprüfen Sie Ihre System-Firewall
Die meisten Verbindungsprobleme treten auf, weil die Firewall Ihres Computers einige Ports oder Dienste blockiert. Wenn auf dem Remote-Computer der SSH-Server installiert ist und ausgeführt wird, besteht der nächste Schritt darin, Ihre Firewall zu überprüfen.
Um herauszufinden, ob die Firewall die Verbindung blockiert, deaktivieren Sie die Firewall vorübergehend mit den folgenden Befehlen:
Auf Debian- und Arch-basierten Linux-Distributionen:
sudo ufw deaktivieren
Auf RHEL-basierten Distributionen und openSUSE:
sudo systemctl Firewalld deaktivieren
Wenn der Fehler nach dem Deaktivieren der Firewall nicht angezeigt wird, bedeutet dies, dass die Firewall die Verbindung blockiert hat. Aktivieren Sie in diesem Fall die Firewall erneut und fügen Sie eine Regel hinzu, die SSH zulässt.
Verwenden Sie bei Debian- und Arch-basierten Linux-Distributionen den folgenden Befehl, um SSH zuzulassen die UFW-Firewall:
sudo ufw ssh zulassen
Alternativ können Sie SSH auch über die Portnummer in der Firewall zulassen. Angenommen, der SSH-Server verwendet Port 5555, dann würden Sie den folgenden Befehl verwenden, um ihn in der Firewall zuzulassen:
sudo ufw erlauben 5555
Um zu überprüfen, ob die Regel erfolgreich hinzugefügt wurde, überprüfen Sie den UFW-Status:
sudo ufw-Status
Verwenden Sie bei RHEL-basierten Distributionen und openSUSE den folgenden Befehl, um SSH in der Firewall zuzulassen:
sudo firewall-cmd --permanent --add-service=ssh
Verwenden Sie den folgenden Befehl, um SSH nach Portnummer zuzulassen:
sudo firewall-cmd --permanent --add-port={port}/tcp
Für einen SSH-Server, der auf Port 4444 läuft, wäre der Befehl:
sudo firewall-cmd --permanent --add-port=4444/tcp
Führen Sie Folgendes aus, um das erfolgreiche Hinzufügen der Regel in der Firewall zu überprüfen:
sudo firewall-cmd --list-all
5. IP-Adresskonflikte lösen
Es besteht auch die Möglichkeit, dass der SSH-Fehler „Verbindung verweigert“ auftritt, weil die IP des SSH-Servers mit der IP eines anderen Systems im Netzwerk in Konflikt steht. Dies passiert, wenn zwei Systeme in einem Netzwerk behaupten, die gleiche IP-Adresse zu haben, was dazu führt ein IP-Konflikt.
Um festzustellen, ob in Ihrem Netzwerk ein IP-Konflikt vorliegt, verwenden Sie das arp-scan-Tool wie folgt:
arp-scan [Netzwerk-ID]
Wenn es einen IP-Konflikt gibt, sehen Sie die doppelte IP-Adresse in der Ausgabe. Der folgende Screenshot ist ein Beispiel für einen IP-Konflikt in einem Netzwerk:
Stellen Sie zur Vermeidung von IP-Konflikten sicher, dass keine Geräte statische IP-Adressen haben, die sich mit den DHCP-Pool-Adressen überschneiden.
Bonus-Tipp: Führen Sie SSH im ausführlichen Modus aus
Wenn Sie auf einen SSH-Fehler stoßen, versuchen Sie, den ssh-Befehl im ausführlichen Modus auszuführen, um das Problem aufzuspüren. Um SSH im ausführlichen Modus auszuführen, verwenden Sie den Befehl ssh mit der -vvv Möglichkeit wie folgt:
ssh -vvv Benutzername@IP-Adresse
Im ausführlichen Modus sehen Sie in jedem Schritt der Verbindung Debugging-Meldungen, die Ihnen helfen zu verstehen, wo das Problem liegt.
Fehlerbehebung beim SSH-Fehler „Verbindung abgelehnt“ unter Linux
Indem Sie die möglichen Ursachen des SSH-Verbindungsfehlers identifizieren und die vorgeschlagenen Lösungen implementieren, können Sie den SSH-Fehler „Verbindung verweigert“ beheben und beheben. Stellen Sie zusätzlich zu diesen Schritten sicher, dass Sie sich mit der richtigen IP-Adresse verbinden und die richtigen Anmeldeinformationen verwenden.
Um Ihre Remote-Verbindung sicherer zu machen, können Sie die Zwei-Faktor-Authentifizierung für SSH unter Linux einrichten.