Diese Anleitung zeigt Ihnen, wie Sie von Ihrem lokalen Computer mithilfe eines SSH-Tunnels eine sichere Verbindung zu Ihrem entfernten MySQL- oder MariaDB-Server herstellen . Dies ist nützlich, wenn Sie Verwaltungstools auf Ihrem lokalen Computer verwenden möchten, um Arbeiten auf Ihrem Server zu erledigen.
Ein SSH-Tunnel ist ein verschlüsselter Tunnel, der über eine SSH-Protokollverbindung hergestellt wird. Sie können einen SSH-Tunnel verwenden, um remote mit der MySQL-Datenbank zu kommunizieren. Nachdem Sie diese Anweisungen befolgt haben, können Sie eine Verbindung zu localhost
herstellen auf Ihrer Workstation mit Ihrem bevorzugten MySQL-Verwaltungstool. Die Verbindung wird sicher über das Internet an Ihren Linode weitergeleitet.
Hinweis MariaDB ist ein Fork von MySQL und gilt als Drop-In-Ersatz. Obwohl sich diese Anleitung auf MySQL bezieht, gilt sie gleichermaßen für MariaDB.
Voraussetzungen
- MySQL ist installiert.
- MySQL ist so konfiguriert, dass es auf
localhost
lauscht (127.0.0.1). Dies ist standardmäßig aktiviert.
So greifen Sie remote auf MySQL zu, indem Sie einen SSH-Tunnel mit PuTTY erstellen
Dieser Abschnitt zeigt Ihnen, wie Sie mit dem PuTTY-Tool einen SSH-Tunnel zu MySQL unter Windows erstellen.
Einrichten des Tunnels
Zuerst müssen Sie eine grundlegende Verbindung zu Ihrem Linode herstellen:
-
PuTTY herunterladen.
-
Speichern Sie PuTTY auf Ihrem Desktop.
-
Doppelklicken Sie auf die PuTTY-Datei, um zu beginnen – es ist keine Installation erforderlich. Sie sehen das folgende Fenster:
-
Geben Sie den Hostnamen oder die IP-Adresse Ihres Linode in das Feld Hostname (oder IP-Adresse) ein Feld.
-
Gehen Sie im linken Menü zu Verbindung -> SSH -> Tunnel .
-
Im Quellport geben Sie
3306
ein . -
Im Ziel Geben Sie im Feld
127.0.0.1:3306
ein . Sehen Sie sich die endgültige Konfiguration unten an: -
Klicken Sie auf Öffnen um die SSH-Sitzung zu starten.
-
Wenn Sie sich zuvor noch nicht mit PuTTY bei diesem System angemeldet haben, erhalten Sie eine Warnung ähnlich der folgenden. Vergewissern Sie sich, dass Sie sich mit diesem Server verbinden möchten, und klicken Sie dann auf Ja :
Hinweis
Diese Warnung wird angezeigt, weil PuTTY möchte, dass Sie überprüfen, ob der Server, bei dem Sie sich anmelden, der ist, für den er sich ausgibt. Es ist unwahrscheinlich, aber möglich, dass jemand Ihre Verbindung abhört und sich als Ihr Linode ausgibt. Um den Server zu verifizieren, vergleichen Sie den Schlüsselfingerabdruck, der in der PuTTY-Warnung angezeigt wird – die Zahlen- und Buchstabenfolge, die mit ssh-rsa beginnt im Bild oben - mit dem Fingerabdruck Ihres öffentlichen Schlüssels von Linode. Um den Fingerabdruck Ihres Linode zu erhalten, melden Sie sich über die Lish-Konsole bei Ihrem Linode an (siehe Konsole Tab im Linode Manager) und folgenden Befehl ausführen:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
Die Schlüsselfingerabdrücke sollten übereinstimmen. Nachdem Sie auf Ja geklickt haben , erhalten Sie keine weiteren Warnungen, es sei denn, der Schlüssel, der PuTTY präsentiert wird, ändert sich aus irgendeinem Grund; Normalerweise sollte dies nur passieren, wenn Sie das Betriebssystem des Remote-Servers neu installieren. Wenn Sie diese Warnung erneut für denselben Linode erhalten, nachdem der Schlüssel bereits zwischengespeichert wurde, sollten Sie der Verbindung nicht vertrauen und die Angelegenheit weiter untersuchen.
-
Leiten Sie Ihren lokalen MySQL-Client an
localhost:3306
. Ihre Verbindung zum Remote-MySQL-Server wird über SSH verschlüsselt, sodass Sie auf Ihre Datenbanken zugreifen können, ohne MySQL auf einer öffentlichen IP auszuführen.
Erstellen Sie einen SSH-Tunnel unter Mac OS X oder Linux
Dieser Abschnitt zeigt Ihnen, wie Sie unter Mac OS X oder Linux einen SSH-Tunnel zu MySQL erstellen.
-
Installieren Sie einen MySQL-Client. Die Installation des MySQL-Servers wird mit einer Installation des Clients vorinstalliert. So installieren Sie nur den Client:
MacOS
brew install --cask mysql-shell
Ubuntu/Debian
sudo apt install mysql-client
-
Öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um den SSH-Tunnel zu öffnen.
ssh [email protected] -L 3306:127.0.0.1:3306 -N
Ersetzen Sie <[email protected]> mit Ihrem SSH-Benutzernamen und dem Hostnamen oder der IP-Adresse Ihres Servers. Die lange Zahlenfolge im Befehl listet die lokale IP, den lokalen Port, die Remote-IP und den Remote-Port auf, getrennt durch Doppelpunkte (: ).
-L
- bindet einen lokalen Port an den entfernten Host post.-N
- bedeutet Weiterleitungsports.Hinweis
Wenn Sie bereits einen lokalen MySQL-Server auf Ihrer Workstation betreiben, verwenden Sie einen anderen lokalen Port (3307 ist eine gängige Wahl). Ihr neuer Befehl würde folgendermaßen aussehen:
ssh [email protected] -L 3307:127.0.0.1:3306 -N
-
Öffnen Sie ein neues Terminalfenster. Leiten Sie Ihren lokalen MySQL-Client zu
127.0.0.1:3306
mit dem Benutzernamen und Passwort des MySQL-Servers.MacOS
mysqlsh --host=127.0.0.1 --port=3306 -u user -p
Ubuntu/Debian
mysql --host=127.0.0.1 --port=3306 -u user -p
Ihre Verbindung zum Remote-MySQL-Server wird über SSH verschlüsselt, sodass Sie auf Ihre Datenbanken zugreifen können, ohne MySQL auf einer öffentlichen IP auszuführen.
-
Wenn Sie bereit sind, die Verbindung zu schließen, geben Sie STRG-C ein Befehl oder schließen Sie das Eingabeaufforderungsfenster. Dadurch wird der SSH-Tunnel geschlossen.
Persistente SSH-Verbindungen
Wenn Sie einen dauerhaften SSH-Tunnel benötigen, ziehen Sie die Verwendung von autossh in Betracht. autossh startet und überwacht eine SSH-Verbindung und startet sie gegebenenfalls neu.
Weitere Informationen
Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.
- Mit PuTTY
- MySQL-Dokumentation
- MariaDB-Dokumentation
- autossh