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

So beheben Sie den Fehler „SSH-Verbindung abgelehnt“.

Einführung

Haben Sie Probleme beim Zugriff auf einen Remote-Server über SSH? Wenn SSH mit einer „Verbindung verweigert“-Meldung antwortet, müssen Sie möglicherweise die Anfrage ändern oder die Einrichtung überprüfen.

In diesem Tutorial finden Sie die häufigsten Gründe für den Fehler, dass die SSH-Verbindung abgelehnt wird.

Warum wird die Verbindung abgelehnt, wenn ich SSH verwende?

Es gibt viele Gründe, warum Sie möglicherweise die Meldung „Verbindung abgelehnt erhalten " Fehler beim Versuch, eine SSH-Verbindung zu Ihrem Server herzustellen. Um dieses Problem zu lösen, müssen Sie zunächst ermitteln, warum das System Ihre Verbindung über SSH abgelehnt hat.

Nachfolgend finden Sie einige der häufigsten Gründe, die zu einer Ablehnung der SSH-Verbindung führen können.

SSH-Client nicht installiert

Bevor Sie andere Probleme beheben, sollten Sie zunächst überprüfen, ob Sie SSH ordnungsgemäß installiert haben. Auf dem Computer, von dem aus Sie auf den Server zugreifen, sollte der SSH-Client eingerichtet sein. Ohne die korrekte Einrichtung des Clients können Sie nicht auf einen Server zugreifen.

Um zu überprüfen, ob Sie den SSH-Client auf Ihrem System haben, geben Sie Folgendes in das Terminalfenster ein:

ssh

Wenn das Terminal eine Liste von ssh bereitstellt Befehlsoptionen wird der SSH-Client auf dem System installiert. Wenn es jedoch mit Befehl nicht gefunden antwortet , müssen Sie den OpenSSH-Client installieren.

Lösung:SSH-Client installieren

Um den SSH-Client auf Ihrem Computer zu installieren, öffnen Sie das Terminal und führen Sie einen der unten aufgeführten Befehle aus.

Für Ubuntu/Debian-Systeme:

sudo apt install openssh-client

Für CentOS/RHEL-Systeme:

sudo yum install openssh-client

SSH-Daemon nicht auf Server installiert

So wie Sie die Client-Version von SSH benötigen, um auf einen Remote-Server zuzugreifen, benötigen Sie die Server-Version, um Verbindungen abzuhören und zu akzeptieren. Daher kann ein Server eine eingehende Verbindung ablehnen, wenn der SSH-Server fehlt oder die Einrichtung nicht gültig ist.

Um zu prüfen, ob SSH auf dem Remote-Server verfügbar ist, führen Sie den folgenden Befehl aus:

ssh localhost

Antwortet der Ausgang mit „Verbindung abgelehnt ", fahren Sie mit der Installation von SSH auf dem Server fort.

Lösung:Installieren Sie SSH auf dem Remote-Server

Informationen zum Beheben des Problems eines fehlenden SSH-Servers finden Sie unter So installieren Sie den OpenSSH-Server.

Anmeldeinformationen sind falsch

Tippfehler oder falsche Anmeldeinformationen sind häufige Gründe für eine abgelehnte SSH-Verbindung. Stellen Sie sicher, dass Sie sich beim Nutzernamen nicht vertippen oder Passwort .

Überprüfen Sie dann, ob Sie die richtige IP-Adresse verwenden des Servers.

Vergewissern Sie sich abschließend, dass Sie den richtigen SSH-Port haben offen. Sie können dies überprüfen, indem Sie Folgendes ausführen:

grep Port /etc/ssh/sshd_config

Die Ausgabe zeigt die Portnummer, wie im Bild unten.

SSH-Dienst ist ausgefallen

Der SSH-Dienst muss aktiviert sein und im Hintergrund ausgeführt werden. Wenn der Dienst ausgefallen ist, kann der SSH-Daemon keine Verbindungen annehmen.

Um den Status des Dienstes zu überprüfen, geben Sie diesen Befehl ein:

sudo service ssh status

Der Ausgang soll antworten, dass der Dienst aktiv ist. Wenn das Terminal antwortet, dass der Dienst ausgefallen ist, aktivieren Sie es, um das Problem zu beheben.

Lösung:SSH-Dienst aktivieren

Wenn das System anzeigt, dass der SSH-Daemon nicht aktiv ist, können Sie den Dienst starten, indem Sie Folgendes ausführen:

systemctl start sshd

Führen Sie den folgenden Befehl aus, damit der Dienst beim Booten ausgeführt werden kann:

sudo systemctl enable sshd

Firewall verhindert SSH-Verbindung

SSH kann eine Verbindung aufgrund von Firewall-Einschränkungen ablehnen. Die Firewall schützt den Server vor potenziell schädlichen Verbindungen. Wenn Sie jedoch SSH auf dem System eingerichtet haben, müssen Sie die Firewall so konfigurieren, dass SSH-Verbindungen zugelassen werden.

Stellen Sie sicher, dass die Firewall keine SSH-Verbindungen blockiert, da dies zu "Verbindung abgelehnt" führen kann " Fehler.

Lösung:SSH-Verbindungen durch Firewall zulassen

Um das oben erwähnte Problem zu beheben, können Sie ufw verwenden (Uncomplicated Firewall), das Befehlszeilenschnittstellen-Tool zur Verwaltung der Firewall-Konfiguration.

Geben Sie den folgenden Befehl in das Terminalfenster ein, um SSH-Verbindungen zuzulassen:

sudo ufw allow ssh

SSH-Port ist geschlossen

Wenn Sie versuchen, eine Verbindung zu einem Remote-Server herzustellen, sendet SSH eine Anfrage an einen bestimmten Port. Um diese Anfrage zu akzeptieren, muss ein Server den SSH-Port geöffnet haben.

Wenn der Port geschlossen ist, lehnt der Server die Verbindung ab.

Standardmäßig verwendet SSH Port 22. Wenn Sie keine Konfigurationsänderungen am Port vorgenommen haben, können Sie überprüfen, ob der Server auf eingehende Anfragen wartet.

Um alle lauschenden Ports aufzulisten, führen Sie Folgendes aus:

sudo lsof -i -n -P | grep LISTEN

Suchen Sie Port 22 in der Ausgabe und prüfen Sie, ob sein STATE auf HÖREN eingestellt ist .

Alternativ können Sie prüfen, ob ein bestimmter Port geöffnet ist, in diesem Fall Port 22:

sudo lsof -i:22

Lösung:SSH-Port öffnen

Verwenden Sie iptables, um Port 22 zum LISTEN auf Anfragen zu aktivieren Befehl:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Sie können Ports auch über die GUI öffnen, indem Sie die Firewall-Einstellungen ändern.

SSH-Debugging und -Protokollierung

Um SSH-Probleme unter Linux zu analysieren, können Sie den ausführlichen Modus aktivieren oder Fehlerbehebung Modus . Wenn Sie diesen Modus aktivieren, druckt SSH Debug-Meldungen aus, die bei der Behebung von Problemen mit Verbindung, Konfiguration und Authentifizierung helfen.

Es gibt drei Ausführlichkeitsstufen:

  • Ebene 1 (-v )
  • Ebene 2 (-vv )
  • Stufe 3 (-vvv )

Anstatt also auf einen entfernten Server zuzugreifen, verwenden Sie die Syntax ssh [server_ip] fügen Sie -v hinzu Option und führen Sie aus:

ssh -v [server_ip]

Alternativ können Sie verwenden:

ssh -vv [server_ip]

oder

ssh -vvv [server_ip]

Ubuntu
  1. So erhöhen Sie das Timeout der SSH-Verbindung

  2. SSH-Verbindung aus dem LAN verweigert?

  3. Wie leitet man das Internet durch einen SSH-Tunnel?

  4. Fix ::Linux SSH-Fehlerverbindung abgelehnt

  5. So beheben Sie den Fehler „Verifizierung des Hostschlüssels fehlgeschlagen“

So beheben Sie „Die Update-Informationen sind veraltet“ in Ubuntu Linux

So aktivieren Sie den SSH-Server unter Ubuntu 22.04

So installieren Sie den OpenSSH-Server auf Ubuntu 20.04 LTS

Wie stellt man über einen Remote-Server über eine SSH-Verbindung eine Verbindung zum Internet her?

So beheben Sie einen Datenbankverbindungsfehler

Beheben des Fehlers „Broken Pipe“ mit SSH-Verbindung