Fernzugriff auf die Datenbank des cPanel-Hostings

cPanel 2 Min. Lesezeit

Bei MySQL- oder MariaDB-Diensten sind Verbindungen über Port 3306 standardmäßig unverschlüsselt, sodass sowohl das Passwort als auch die Daten abgefangen werden könnten. Aus diesem Grund sind die Datenbanken auf unseren cPanel-Servern von außen nicht direkt zugänglich, sondern nur über einen verschlüsselten SSH-Tunnel. Die in der cPanel-Oberfläche „Remote Database Access“ (Fernzugriff auf Datenbanken) angegebenen IP-Adressen ermöglichen aus diesem Grund keinen direkten Zugriff.

Dies ist ein Thema für Fortgeschrittene und setzt voraus, dass Sie bereits über gewisse Erfahrungen mit SSH und SQL-Client-Programmen verfügen.

Voraussetzungen

Linux, macOS, WSL und Windows PowerShell

Öffnen Sie ein Terminal und richten Sie mit dem folgenden Befehl den Tunnel zum cPanel-Hosting ein:

ssh -p 4231 -N -L 3333:localhost:3306 user@server

Wo:

  • -p 4231: Der Port des SSH-Servers, mit dem eine Verbindung hergestellt werden muss.
  • -N: Der Client darf keine Befehle oder Shells starten, sondern soll lediglich den Tunnel aufrechterhalten.
  • -L 3333:localhost:3306: Der vom Server aus auf Port 3333 des eigenen Rechners eingehende Datenverkehr wird an die Adresse localhost:3306 weitergeleitet (wobei „localhost“ hier den Remote-Server bezeichnet).
  • user@server: Der cPanel-Benutzername und der Name des Servers.

Der in Windows 10 und 11 integrierte OpenSSH-Client akzeptiert denselben Befehl in PowerShell. Sollte die Verbindung aufgrund von Inaktivität unterbrochen werden, fügen Sie den Schalter „-o ServerAliveInterval=60“ hinzu.

Windows, PuTTY

  1. Geben Sie in PuTTY den Servernamen und den SSH-Port ein und tragen Sie im Bereich „Connection > SSH > Auth > Credentials“ den geheimen Schlüssel im PPK-Format ein.
  2. Geben Sie auf der Seite „Connection > SSH > Tunnels“ im Feld „Source port“ den Wert „3333“ und im Feld „Destination“ den Wert „localhost:3306“ ein und klicken Sie anschließend auf die Schaltfläche „Add“.
  3. Stellen Sie eine Verbindung her; solange das Fenster geöffnet ist, bleibt der Tunnel aktiv.

Einrichtung des SQL-Clients

Solange der Tunnel aktiv ist, geben Sie im SQL-Client (z. B. HeidiSQL, DBeaver, MySQL Workbench) Folgendes ein:

  • Server: 127.0.0.1 (geben Sie bitte nicht „localhost“ ein, da einige Clients dies als lokalen Socket interpretieren und den Tunnel nicht nutzen),
  • Port: 3333,
  • Benutzername und Passwort: Der vollständige Name und das Passwort des Datenbankbenutzers.

Die aufgeführten Programme verfügen ebenfalls über eine eigene SSH-Tunnel-Funktion (HeidiSQL: „MySQL (SSH-Tunnel)“, MySQL Workbench: „Standard TCP/IP über SSH“, DBeaver: Registerkarte „SSH“). In diesem Fall ist kein separater Befehl erforderlich: Geben Sie im Abschnitt „SSH“ den Servernamen, den Port, den cPanel-Benutzernamen und den Schlüssel ein, im Abschnitt „Datenbank“ die Adresse „127.0.0.1“ und den Port 3306.

Häufige Fehler

  • Zugriff verweigert (publickey): Der Schlüssel ist im cPanel-Bereich „SSH-Zugriff“ nicht autorisiert oder Sie verwenden nicht den richtigen geheimen Schlüssel.
  • Adresse bereits belegt: Port 3333 ist auf Ihrem Rechner bereits belegt; wählen Sie bitte einen anderen (z. B. 3334:localhost:3306).
  • Zugriff verweigert für Benutzer: Am Anfang des Benutzernamens fehlt das Präfix „cPanel“, oder der Benutzer ist der Datenbank nicht zugeordnet.
Zurück: cPanel-Artikel (43)