Zum Inhalt springen

SSH connection refused: So stellen Sie den Serverzugriff wieder her

Mittel 15 Min. Aktualisiert:

Kurze Antwort

Die Meldung „connection refused“ bedeutet, dass der Server erreichbar ist, aber kein Dienst die Verbindung auf dem angeforderten Port annimmt. Meist liegt es daran, dass der SSH-Dienst (sshd) nicht läuft, auf einem anderen Port lauscht oder von einer Firewall blockiert wird. Prüfen Sie der Reihe nach: ob sshd läuft, auf welchem Port, ob der Port offen ist und ob Sie den richtigen Host ansprechen.

So erkennen Sie das Problem

  • Der Client meldet „ssh: connect to host ... port 22: Connection refused“
  • Ping zum Server funktioniert, aber die SSH-Verbindung wird sofort abgelehnt
  • Die Verbindung funktioniert aus einem Netzwerk, aus einem anderen nicht
  • Nach einer Port- oder sshd-Konfigurationsänderung ist der Zugriff nicht mehr möglich
  • Der Server wurde nach einem Neustart hochgefahren und SSH nimmt keine Verbindungen mehr an

Häufigste Ursachen

SSH-Dienst nicht gestartet

Der sshd-Prozess läuft nicht oder ist abgestürzt, daher lehnt das Betriebssystem Verbindungen auf Port 22 ab. Prüfen Sie den Dienststatus und die Logs.

SSH lauscht auf einem anderen Port

In der Konfiguration wurde der Port geändert (z. B. auf 2222), aber Sie verbinden sich mit dem Standardport 22. Der Client erhält dann connection refused.

Firewall blockiert den Port

Eine lokale Firewall (ufw, firewalld, nftables) oder eine Cloud-Sicherheitsgruppe lehnt den Datenverkehr auf dem SSH-Port ab.

Falscher Host oder falsche IP

Sie verbinden sich mit einer IP-Adresse, auf der kein SSH läuft, mit dem falschen Server oder mit einem Gerät, das SSH nicht zulässt.

Dienst lauscht nur auf localhost

sshd ist an 127.0.0.1 oder an die falsche Schnittstelle gebunden, sodass von außen keine Verbindungen angenommen werden.

Lösung Schritt für Schritt

  1. 1

    Prüfen Sie, ob Sie den richtigen Host und Port verwenden

    Bestätigen Sie zunächst die IP-Adresse oder den Servernamen und den Port. Wenn Sie den Port nicht kennen, fragen Sie den Administrator oder sehen Sie in der Konfiguration nach. Standard ist 22, aber viele Server verwenden einen anderen Port. Versuchen Sie es auf dem Client explizit mit: ssh -p 22 benutzer@server. Wenn Sie weiterhin „connection refused“ erhalten, fahren Sie fort.

  2. 2

    Prüfen Sie, ob der Server erreichbar ist

    Führen Sie auf dem Client ping server und nc -vz server 22 (oder telnet server 22) aus. Wenn Ping funktioniert, nc aber „Connection refused“ meldet, ist das Netzwerk in Ordnung, aber der Dienst nimmt keine Verbindung an. Wenn nc „timed out“ meldet, verwirft wahrscheinlich eine Firewall die Pakete.

  3. 3

    Melden Sie sich lokal oder über die Konsole an

    Wenn Sie physischen Zugriff oder eine Provider-Konsole (KVM, VNC, seriell) haben, melden Sie sich als root oder als Benutzer mit sudo-Rechten an. Ohne dies können Sie den Dienststatus nicht prüfen. Wenn Sie keine Konsole haben, wenden Sie sich an den Provider.

  4. 4

    Prüfen Sie den Status des SSH-Dienstes

    Führen Sie systemctl status ssh (Debian/Ubuntu) oder systemctl status sshd (RHEL/CentOS) aus. Wenn der Dienst inaktiv ist, starten Sie ihn: sudo systemctl start ssh (Debian/Ubuntu) oder sudo systemctl start sshd (RHEL/CentOS). Prüfen Sie dann, ob er beim Systemstart aktiviert ist: sudo systemctl enable ssh (Debian/Ubuntu) oder sudo systemctl enable sshd (RHEL/CentOS).

  5. 5

    Sehen Sie in den Logs nach Fehlern

    Verwenden Sie journalctl -u ssh -n 50 oder journalctl -u sshd -n 50. Suchen Sie nach Fehlermeldungen beim Start, z. B. „bind: Address already in use“ oder „error: Bind to port 22 failed“. Sehen Sie bei älteren Systemen in /var/log/auth.log oder /var/log/secure nach.

  6. 6

    Prüfen Sie, auf welchem Port und welcher Schnittstelle sshd lauscht

    Führen Sie ss -tlnp | grep ssh oder netstat -tlnp | grep ssh aus. Achten Sie auf die Spalte Local Address. Wenn dort 127.0.0.1:22 steht, lauscht sshd nur lokal. Wenn dort 0.0.0.0:2222 steht, ist der Port 2222. Prüfen Sie in der Konfiguration /etc/ssh/sshd_config die Direktiven Port und ListenAddress.

  7. 7

    Prüfen Sie die Firewall

    Unter Ubuntu/Debian: sudo ufw status verbose. Unter RHEL/CentOS: sudo firewall-cmd --list-all. Stellen Sie sicher, dass der SSH-Port zugelassen ist. Wenn Sie eine Cloud verwenden, prüfen Sie die Sicherheitsgruppe oder die Netzwerkfirewall in der Provider-Konsole. Wenn Sie ufw verwenden, können Sie den SSH-Port freigeben (z. B. sudo ufw allow 22/tcp).

  8. 8

    Korrigieren Sie die Konfiguration und starten Sie sshd neu

    Wenn Sie /etc/ssh/sshd_config geändert haben, prüfen Sie die Syntax: sudo sshd -t. Starten Sie dann den Dienst neu: sudo systemctl restart ssh (Debian/Ubuntu) oder sudo systemctl restart sshd (RHEL/CentOS). Beachten Sie, dass ein Neustart bestehende Verbindungen unterbrechen kann. Stellen Sie daher vorher einen alternativen Zugang sicher. Wenn alles in Ordnung ist, versuchen Sie es erneut vom Client aus.

Wenn nichts hilft: erweiterte Prüfungen

Wenn sshd aktiv ist und auf 0.0.0.0:22 lauscht, die Verbindung aber weiterhin abgelehnt wird, prüfen Sie, ob eine weitere Firewall-Ebene existiert (z. B. nftables-Regeln, fail2ban, das eine Sperre hinzugefügt hat). Sehen Sie sich sudo nft list ruleset und sudo fail2ban-client status sshd an. Prüfen Sie in einer Cloud-Umgebung, ob die öffentliche IP-Adresse korrekt auf die Instanz gemappt ist. Sie können sshd testweise auf einem anderen Port starten: sudo sshd -p 2222 -d (Debug-Modus, unterbrechen Sie die Sitzung nicht). Wenn das Problem nur bei einem Client auftritt, prüfen Sie die lokale Firewall oder das VPN. Für Produktionsserver sollten Sie immer einen alternativen Zugang haben (Konsole, anderer SSH-Port), um eine Aussperrung zu vermeiden.

So beugen Sie vor

  • Prüfen Sie regelmäßig den Status des sshd-Dienstes und die Logs
  • Dokumentieren Sie Änderungen an Port und Firewall-Regeln
  • Stellen Sie einen alternativen Zugang sicher (Konsole, anderer Port)
  • Verwenden Sie ein Monitoring, das die Nichtverfügbarkeit von SSH erkennt

Wann Sie einen Profi rufen sollten

Wenn Sie keine Konsole oder keinen alternativen Zugang zum Server haben und SSH nicht funktioniert, riskieren Sie eine dauerhafte Aussperrung. In diesem Fall ist es besser, den IT-Support zu rufen, der Erfahrung mit der Fernwiederherstellung hat.

IT-Infrastruktur-Wartung · Server, Netzwerke, Backup, Sicherheit und Helpdesk

Häufige Fragen

Warum erhalte ich „connection refused“, obwohl Ping funktioniert?

Ping testet die Netzwerkerreichbarkeit, nicht den Dienst. Connection refused bedeutet, dass der Host erreichbar ist, aber kein Prozess die Verbindung auf diesem Port annimmt. Meist läuft sshd nicht oder lauscht auf einem anderen Port.

Wie finde ich heraus, auf welchem Port SSH läuft?

Führen Sie auf dem Server `ss -tlnp | grep ssh` aus oder sehen Sie in `/etc/ssh/sshd_config` nach (Direktive `Port`). Wenn Sie keinen Zugriff auf den Server haben, fragen Sie den Administrator oder den Provider.

Ist es sicher, sshd neu zu starten?

Ein Neustart kann bestehende SSH-Sitzungen unterbrechen, löscht aber keine Daten. Prüfen Sie vor dem Neustart die Syntax mit `sudo sshd -t` und stellen Sie einen alternativen Zugang sicher (z. B. Konsole). Wenn Sie sich bei der Konfiguration nicht sicher sind, starten Sie sshd nicht über dieselbe Sitzung neu.

Teilen
Keine Lösung gefunden?Der KI-IT-Assistent ist rund um die Uhr erreichbar. Beschreiben Sie das Problem oder senden Sie einen Screenshot und erhalten Sie eine Anleitung für Ihren Fall.KI-IT-Assistent fragen