Entwicklung und Datenbanken
Sichere Remote-Verbindung zum MySQL-Server
Eine unverschlüsselte MySQL-Remote-Verbindung kann die Zugangsdaten und die übertragenen Daten offenlegen. Ein SSH-Tunnel verschlüsselt die Strecke zwischen Ihrem Rechner und dem Server, ohne dass die IP Ihres Rechners direkt in MySQL freigegeben werden muss. Der Tunnel schließt den öffentlichen Port des verwalteten Dienstes nicht.
Diese Anleitung verwendet den SSH-Tunnel, der in den Tarifen mit SSH-Zugang verfügbar ist. Aktivieren und konfigurieren Sie den SSH-Zugang vorher mit einem Ed25519-Schlüssel, der durch eine Passphrase geschützt ist.
Verbindung über einen MySQL-Client mit SSH-Unterstützung
Unterstützt Ihr Datenbank-Client SSH, kann er den Tunnel automatisch aufbauen. Konfigurieren Sie beim Anlegen der Verbindung die Tabs für SSH und MySQL getrennt.
Geben Sie in der SSH-Konfiguration an:
- SSH-Server: den Servernamen aus den technischen Daten des Hostings. Vermeiden Sie eine Domain hinter einem Proxy oder eine, die auf einen anderen Anbieter zeigt
- SSH-Port:
93, sofern die Daten Ihres Dienstes keinen anderen angeben - SSH-Benutzer: Ihr cPanel-Benutzer
- Authentifizierung: privater Ed25519-Schlüssel
- Privater Schlüssel: der lokale Pfad des Schlüssels, dessen öffentlichen Teil Sie in cPanel autorisiert haben
Schützen Sie den Schlüssel mit einer Passphrase und entsperren Sie ihn über den Schlüsselagenten oder den sicheren Speicher des Clients. Speichern Sie das cPanel-Passwort nicht in der Verbindung.
Geben Sie in der MySQL-Konfiguration an:
- MySQL-Server:
127.0.0.1 - MySQL-Port:
3306 - MySQL-Benutzer und -Passwort: die eines Benutzers, der auf die nötige Datenbank beschränkt ist
- Datenbank: der vollständige, in cPanel angelegte Name
Der Client öffnet zuerst die SSH-Sitzung und verbindet sich innerhalb dieses Tunnels mit MySQL auf 127.0.0.1. Prüfen Sie vor dem Akzeptieren der ersten SSH-Verbindung den Fingerabdruck des Servers, wie in der verlinkten Anleitung beschrieben.
Den Tunnel im Terminal Ihres Rechners aufbauen
Sie können ihn auch mit OpenSSH öffnen. Dieser Befehl wird auf Ihrem Computer ausgeführt, nicht im Hosting. Ersetzen Sie Server, Benutzer und Pfad des Schlüssels:
ssh -N -T -p 93 -i ~/.ssh/id_ed25519 \ -o ExitOnForwardFailure=yes \ -L 127.0.0.1:13306:127.0.0.1:3306 \ usuario_cpanel@servidor.example.com
Das Terminal bleibt geöffnet, ohne eine entfernte Shell anzuzeigen. Solange die Verbindung besteht, konfigurieren Sie Ihren MySQL-Client mit Host 127.0.0.1, Port 13306 sowie Benutzer und Passwort der Datenbank. Aktivieren Sie in diesem Fall nicht zusätzlich den integrierten Tunnel des Clients.
Der Tunnel lauscht nur auf Ihrem eigenen Rechner. Ersetzen Sie 127.0.0.1 nicht durch 0.0.0.0, sonst könnten andere Rechner im Netzwerk den Tunnel nutzen. Schließen Sie am Ende die MySQL-Verbindung und drücken Sie im Terminal des Tunnels Ctrl+C.
Wenn keine Verbindung zustande kommt
- Address already in use: Der lokale Port 13306 ist belegt. Wählen Sie einen anderen freien lokalen Port und verwenden Sie dieselbe Nummer im MySQL-Client.
- Permission denied (publickey): Prüfen Sie den SSH-Benutzer, den gewählten Schlüssel und ob sein öffentlicher Teil im Konto autorisiert ist.
- Administratively prohibited: Der Server lehnt die Weiterleitung ab. Fragen Sie beim Support nach, ob dieses Konto Tunnel erlaubt; die Aktivierung von SSH bedeutet nicht, dass jede Form der Weiterleitung erlaubt ist.
- Access denied von MySQL: Der Tunnel funktioniert möglicherweise. Prüfen Sie die MySQL-Zugangsdaten und die Zuordnung des Benutzers zur Datenbank, die unabhängig von SSH sind.
- Fehler beim Fingerabdruck des Servers: Klären Sie die Änderung mit dem Support, bevor Sie den gespeicherten Fingerabdruck ersetzen.
Die SSH-Verschlüsselung schützt die Strecke bis zum SSH-Server. Dieses Beispiel verbindet sich von dort mit dem lokalen MySQL; wäre das Ziel ein anderer Server, müssten Sie auch diese Strecke bewerten und schützen.
Das könnte Ihnen auch helfen
- Datenbank klonen Duplizieren Sie eine MySQL-Datenbank, indem Sie zuerst das Ziel und seine Berechtigungen in cPanel a...
- Datenbank von MyISAM nach InnoDB konvertieren und die Storage-Engine wechseln Konvertieren Sie MyISAM-Tabellen auf einem geprüften Klon nach InnoDB, prüfen Sie Speicherplatz, Ind...
- Datenbank von utf8 nach utf8mb4 konvertieren Migrieren Sie Tabellen von utf8 nach utf8mb4 in einer geklonten Datenbank, prüfen Sie Collations und...
- Den Fehler bei der Datenbankverbindung in WordPress beheben Was Sie prüfen sollten, wenn WordPress nach einer Migration der Website oder einer Änderung der MySQ...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.