SSH: Connection refused – Verbindung wird abgewiesen
ssh scheitert mit Connection refused? Meist läuft kein sshd, der Port stimmt nicht oder die Firewall blockt. So grenzt du es sauber ein.
Aufwand:
ca. 15 Min.
Voraussetzung:
Zugang zum Zielsystem (Konsole/Root)
Das Symptom
Du willst dich per SSH auf einen Server verbinden und bekommst sofort – ohne
langes Warten – ein knappes ssh: connect to host ... port 22: Connection refused. Kein Passwort-Prompt, keine Schlüsselabfrage, nichts. Die Tür ist
nicht nur verschlossen, es macht schlicht niemand auf.
Die „Layer 8“-Wahrheit
Connection refused ist erfreulich ehrlich: Der Server ist erreichbar, aber auf
dem angefragten Port meldet sich kein Dienst – entweder läuft sshd gar nicht,
oder er lauscht auf einem anderen Port, oder eine Firewall weist die Verbindung
aktiv ab. Das ist der wichtige Unterschied zu „Connection timed out“, bei dem
die Pakete kommentarlos im Nichts verschwinden. Der häufigste Layer-8-Moment:
Nach einem Neustart wurde der SSH-Dienst nie aktiviert, oder man tippt tapfer
gegen Port 22, während der Admin ihn längst auf 2222 verlegt hat.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Prüfen, ob der SSH-Dienst läuft
Auf dem Zielsystem den Status des SSH-Daemons kontrollieren und bei Bedarf starten (Dienst heißt je nach Distribution ssh oder sshd):
sudo systemctl status ssh
sudo systemctl start ssh
2.
Lauscht der Dienst auf dem erwarteten Port?
Prüfen, auf welchem Port sshd tatsächlich horcht. Weicht er von 22 ab, muss der Client den Port explizit angeben:
sudo ss -tlnp | grep ssh
ssh -p 2222 benutzer@host
3.
Firewall für SSH öffnen
Blockt die Firewall, den SSH-Port freigeben – je nach Firewall-Frontend:
Der ausführliche Modus zeigt exakt, an welcher Stelle die Verbindung scheitert (DNS, TCP, Authentifizierung):
ssh -vvv benutzer@host
5.
Host, IP und Erreichbarkeit gegenprüfen
Richtige IP/Hostname verwenden und die reine Netzwerk-Erreichbarkeit testen. Antwortet der Host, aber Port 22 wird abgelehnt, ist es der Dienst oder die Firewall – nicht das Netz.
Häufige Fragen (FAQ)
?Was ist der Unterschied zwischen 'Connection refused' und 'Connection timed out' bei SSH?
'Connection refused' bedeutet, das Ziel ist erreichbar, aber auf dem Port lauscht kein Dienst (oder die Firewall sendet ein aktives Reject). 'Timed out' heißt, die Pakete versanden – meist Netzwerk-/Firewall-Drop oder falsche IP.
?Wie prüfe ich, ob der SSH-Dienst überhaupt läuft?
Auf dem Zielsystem mit 'sudo systemctl status ssh' (Debian/Ubuntu) bzw. 'sshd' (RHEL/Fedora). Läuft er nicht, mit 'sudo systemctl start ssh' starten. 'ss -tlnp | grep :22' zeigt, ob auf Port 22 gelauscht wird.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.
SSH warnt 'REMOTE HOST IDENTIFICATION HAS CHANGED' und 'Host key verification failed'? So prüfst du die Ursache und entfernst den alten Schlüssel sicher.
SSH verweigert den Schlüssel, weil die Rechte zu offen seien? Ein privater Schlüssel darf nur dir gehören — mit einem chmod ist es in Sekunden behoben.
Port ist freigegeben, Firewall offen, Dienst läuft – und von außen kommt nichts an? Dann lauscht er nur auf 127.0.0.1. Ein Unterschied, den niemand sieht.