Secure Shell (SSH) ist ein wichtiges WordPress-Entwicklungswerkzeug. Es ermöglicht fortgeschrittenen Benutzern den Zugriff auf wichtige Plattformen und Software, die das Programmieren und andere Aufgaben einfacher, schneller und organisierter machen.

Wenn man also SSH nur verwendet, um dann den Fehler „Connection refused“ zu sehen, kann es sein, dass man anfängt, sich Sorgen zu machen. Dies ist jedoch ein häufiges Problem, und es ist durchaus möglich, es mit ein wenig Fehlerbehebung selbst zu beheben. Du wirst im Handumdrehen wieder Befehle ausführen können.

In diesem Beitrag werden wir besprechen, was SSH ist und wann es zu benutzen ist. Dann werden wir einige häufige Gründe für die Ablehnung deiner Verbindung erklären, auch in PuTTY. Schließlich werden wir einige Tipps zur Fehlerbehebung geben.

Lasst uns loslegen!

Willst du lieber die Video-Version sehen?

Was ist SSH und wann sollte ich es verwenden?

Secure Shell (SSH), manchmal auch Secure Socket Shell genannt, ist ein Protokoll für den sicheren Zugriff auf den Server deiner Webseite über ein ungesichertes Netzwerk. Mit anderen Worten, es ist eine Möglichkeit, sich über die von dir bevorzugte Befehlszeilenschnittstelle sicher bei deinem Server aus der Ferne anzumelden:

Verwendung von SSH für den Fernzugriff auf eine auf Kinsta gehostete WordPress-Seite
Verwendung von SSH für den Fernzugriff auf eine auf Kinsta gehostete WordPress-Seite

Im Gegensatz zum File Transfer Protocol (FTP), mit dem man nur Dateien auf den Server hochladen, löschen und bearbeiten kann, kann SSH eine Vielzahl von Aufgaben erfüllen. Wenn man zum Beispiel durch einen Fehler von der WordPress-Seite ausgeschlossen wird, kann man mit SSH per Fernzugriff darauf zugreifen.

Dieses Protokoll ermöglicht dir auch die Verwendung mehrerer wichtiger Entwicklerwerkzeuge, darunter:

  • WP-CLI. Die WordPress-Befehlszeile. Du kannst sie für eine Vielzahl von Aufgaben verwenden, einschließlich neuer Installationen, Massen-Plugin-Aktualisierungen und Importe von Mediendateien.
  • Composer. Ein PHP-Paket-Manager. Er ermöglicht es dir, verschiedene Frameworks zur Verwendung im Code deiner Webseite zu implementieren, indem du die notwendigen Bibliotheken und Abhängigkeiten heranziehst.
  • Git. Ein Versionskontrollsystem zur Verfolgung von Änderungen im Code. Dies ist besonders nützlich für Entwicklerteams, die gemeinsam an einem einzigen Projekt arbeiten.
  • npm. Ein JavaScript-Paket-Manager. Er enthält eine Befehlszeile und eine JavaScript-Software-Registrierung. Hinweis: Kinsta-Kunden benötigen einen Enterprise-Plan, um auf diese Funktion zugreifen zu können.

Es ist wichtig zu beachten, dass die Verwendung von SSH eine fortgeschrittene Fähigkeit ist. Im Allgemeinen sollten sich Laienbenutzer von WordPress an ihre Entwickler oder Hosting-Provider wenden, um Hilfe zu erhalten, anstatt zu versuchen, Probleme mit SSH selbst zu lösen.

Warum wird meine SSH-Verbindung verweigert? (5 Gründe für Verbindungsfehler)

Leider gibt es viele Szenarien, die auftreten können, während man versucht, eine Verbindung zu seinem Server über SSH herzustellen, was zu dem Fehler „Connection refused“ führen kann.

Im Folgenden sind einige der häufigsten Probleme aufgeführt, die für dich Probleme verursachen könnten.

1. Dein SSH-Dienst ist nicht verfügbar

Um eine Verbindung zu deinem Server mit SSH herstellen zu können, muss ein SSH-Deamon laufen – ein Programm, das im Hintergrund läuft, um auf Verbindungen zu warten und diese zu akzeptieren.

Wenn dieser Dienst ausgefallen ist, kann die Verbindung zu deinem Server nicht erfolgreich hergestellt werden, und es kann ein Fehler „Connection refused“ auftreten:

Connection Refused Fehler im Terminal
Connection Refused Fehler im Terminal

Der SSH-Daemon deines Servers kann aus einer Vielzahl von Gründen ausfallen, einschließlich unerwarteter Verkehrsspitzen, Ressourcenausfälle oder sogar eines DDoS-Angriffs (Distributed Denial of Service). Zusätzlich zu den unten aufgeführten Schritten zur Fehlerbehebung kannst du dich an deinen Hosting-Provider wenden, um die Ursache des Problems zu ermitteln.

Wenn du den Verdacht hast, dass dein SSH-Dienst ausfallen könnte, dann kannst du diesen Befehl ausführen, um das herauszufinden:

sudo service ssh status

Wenn die Befehlszeile den Status „down“ zurückgibt, hast du wahrscheinlich den Grund für deinen Verbindungsfehler gefunden.

2. Du hast die falschen Zugangsdaten.

Auch wenn es zu einfach erscheint, um wahr zu sein, ist es möglich, dass du nur die falschen Zugangsdaten eingibst, wenn du versuchst, dich mit deinem Server zu verbinden. Für die Ausführung von SSH sind vier Informationen erforderlich:

  • Hostname. Die IP-Adresse des Servers, zu dem du eine Verbindung herzustellen versuchst, oder dein Domain-Name.
  • Den Benutzernamen. Dein (S)FTP-Benutzername.
  • Dein Kennwort. Dein (S)FTP-Passwort.
  • Dein Port. Der Standardport ist 22. Einige Hosting-Provider (einschließlich Kinsta) ändern jedoch aus Sicherheitsgründen ihre SSH-Portnummer. Wenn dies der Fall ist, solltest du sie finden können, indem du dich in dein MyKinsta-Dashboard einloggst.

Du kannst auch überprüfen, welcher Port für SSH verwendet wird, indem du diesen Befehl ausführst:

grep Port /etc/ssh/sshd_config

Die Befehlszeile sollte den richtigen Port zurückgeben.

Überprüfe, ob du die richtigen Anmeldedaten eingibst und berücksichtige dabei die Möglichkeit von Tippfehlern oder die Eingabe der falschen IP-Adresse oder des falschen Ports.

3. Der Port, den du verwenden möchtest, ist geschlossen.

Ein „Port“ ist einfach der Endpunkt, zu dem du bei der Verbindung mit deinem Server geleitet wirst. Es sollte nicht nur sichergestellt werden, dass der richtige Port verwendet wird, sondern auch, dass der gewünschte Port offen ist.

Jeder offene Port ist eine Sicherheitslücke, da Hacker versuchen können, ihn auszunutzen und Zugang zum Server zu erhalten. Aus diesem Grund werden ungenutzte Ports oft geschlossen, um Angriffe zu verhindern.

Falls Port 22 oder der benutzerdefinierte SSH-Port für den Server geschlossen wurde, tritt wahrscheinlich der Fehler „Connection Refused“ auf. Du kannst überprüfen, ob der Port zuhört, indem du diesen Befehl ausführst:

sudo netstat -plnt

Die Kommandozeile sollte eine Liste von Ports und ihren jeweiligen „Zuständen“ zurückgeben. Der Zustand von Port 22 soll LISTEN sein. Wenn dies nicht der Fall ist, musst du den Port erneut öffnen, um eine Verbindung mit deinem Server herzustellen.

4. SSH ist nicht auf deinem Server installiert

Wie wir bereits kurz erwähnt haben, verwenden Server SSH-Daemons, um auf Verbindungen zu warten und diese zu akzeptieren. Wenn der Server, zu dem du dich verbinden willst, keinen installiert hat, kannst du daher nicht mit SSH auf ihn zugreifen.

Im Allgemeinen haben fast alle Hosting-Provider standardmäßig SSH-Daemons auf ihren Servern installiert. Dieses spezielle Problem tritt häufiger auf Localhost- oder dedizierten Servern auf.

5. Firewall-Einstellungen verhindern eine SSH-Verbindung

Da offene Ports ein Sicherheitsrisiko darstellen, blockieren Firewalls, die zum Schutz der Server vor Hackern installiert wurden, manchmal die Verbindungen zu ihnen. Leider bedeutet dies, dass selbst harmlose Benutzer, die versuchen, SSH auf ihre Server zu übertragen, aufgrund der Firewall-Einstellungen einen Fehler „Connection Refused“ erhalten können.

Wenn deine Einrichtung in Ordnung zu sein scheint und du immer noch keine Verbindung herstellen kannst, wirf einen Blick auf die Regeln deiner Firewall. Du kannst sie mit den folgenden Befehlen in deiner Befehlszeilenschnittstelle anzeigen:

sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules

Die Ergebnisse werden unterschiedlich ausfallen, aber man sollte nach diesen Elementen suchen, um festzustellen, ob die Firewall SSH-Verbindungen blockiert:

  • dport 22: Dies bezieht sich auf den Zielport, der für SSH normalerweise Port 22 ist (zur Erinnerung: Kinsta verwendet diese Portnummer nicht).
  • REJECT: Dies würde darauf hinweisen, dass Verbindungen vom angegebenen Zielort abgelehnt werden.
  • DROP: Wie REJECT bedeutet dies, dass Verbindungen zum betreffenden Port blockiert werden.

Wenn man die Ergebnisse der obigen Befehle nach dport 22 durchsucht, sollte man in der Lage sein, festzustellen, ob die Firewall eine SSH-Verbindung verhindert. Wenn ja, dann muss man die Regeln ändern, um Anfragen zu akzeptieren.

Warum sagt PuTTY Verbindung verweigert?

PuTTY ist ein SSH-Client. Wenn du mit FTP vertraut bist, ist diese Plattform das FileZilla-Äquivalent zu SSH auf Windows-Maschinen. Mit anderen Worten, PuTTY ermöglicht es Benutzern, ihre Anmeldeinformationen einzugeben und eine SSH-Verbindung zu starten:

Die PuTTY Webseite
Die PuTTY Webseite

Wenn du ein PuTTY-Benutzer bist und den Fehler Connection Refused siehst, ist die Ursache wahrscheinlich eine der oben aufgeführten.

Dies ist ein SSH-Verbindungsfehler wie jeder andere, und die folgenden Tipps zur Fehlerbehebung sollten funktionieren, unabhängig davon, ob du PuTTY, Terminal oder ein anderes Programm für die Verbindung mit deinem Server mit SSH verwendest.

Wie behebe ich SSH-Verbindungsfehler?

Wenn ein SSH-Verbindungsfehler auftritt, stehen dir je nach Ursache ein paar Schritte zur Fehlerbehebung zur Verfügung. Hier sind einige Tipps zur Behebung der Gründe für den oben beschriebenen Fehler „Connection Refused“:

  • Wenn dein SSH-Dienst nicht verfügbar ist. Wende dich an deinen Hosting-Provider, um zu erfahren, warum dein SSH-Dienst nicht läuft. Für localhost oder dedizierte Server kann mit dem Befehl sudo service ssh restart versucht werden, ihn wieder zum Laufen zu bringen.
  • Wenn du die falschen Zugangsdaten eingegeben hast. Wenn du den SSH-Port mit dem Befehl grep Port /etc/ssh/sshd_config doppelt überprüft hast, versuche erneut, eine Verbindung mit den richtigen Angaben herzustellen.
  • Wenn dein SSH-Port geschlossen ist. Dies ist normalerweise ein Nebeneffekt eines der beiden unten aufgeführten Gründe. Installiere entweder einen SSH-Daemon auf dem Server, mit dem du dich verbinden möchtest, oder ändere deine Firewall-Regeln so, dass Verbindungen zu deinem SSH-Port akzeptiert werden.
  • Wenn SSH nicht auf deinem Server installiert ist. Installiere ein SSH-Werkzeug wie OpenSSH auf dem Server, zu dem du eine Verbindung herstellen willst, mit dem Befehl sudo apt install openssh-server.
  • Wenn deine Firewall deine SSH-Verbindung blockiert. Deaktiviere die Firewall-Regeln, die deine SSH-Verbindung blockieren, indem du die Einstellungen des Zielports auf ACCEPT änderst.

Wenn du versuchst, eine Verbindung mit dem Server deines Hosting-Providers herzustellen, ist es möglicherweise klüger, den Support zu kontaktieren, als das Problem selbst zu beheben. Benutzer auf localhost oder dedizierten Servern können möglicherweise weitere Unterstützung in fortgeschritteneren Foren finden, wenn keine der oben genannten Lösungen funktioniert.

Zusammenfassung

Die Möglichkeit, sich mit SSH mit deinem Server zu verbinden, ist in einer Vielzahl von Situationen praktisch. So kannst du auf deine Webseite zugreifen, wenn du aus deinem WordPress-Dashboard ausgesperrt bist, Befehle über WP-CLI ausführen, Änderungen im Code deiner Webseite mit Git verfolgen und vieles mehr.

Obwohl es mehrere Ursachen gibt, die hinter deinem SSH-Verbindungsfehler stehen könnten, sind dies einige der häufigsten:

  1. Dein SSH-Dienst ist nicht verfügbar.
  2. Du hast die falschen Zugangsdaten.
  3. Der Port, den du versuchst zu benutzen, ist geschlossen.
  4. SSH ist nicht auf deinem Server installiert.
  5. Die Firewall-Einstellungen verhindern eine SSH-Verbindung.