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
Dieser Abschnitt zeigt Ihnen, wie Sie mit dem PuTTY-Tool einen SSH-Tunnel zu MySQL unter Windows erstellen.
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
Im Ziel Geben Sie im Feld
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 :
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:
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
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
Ubuntu/Debian
Öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um den SSH-Tunnel zu öffnen.
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 (: ).
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:
Öffnen Sie ein neues Terminalfenster. Leiten Sie Ihren lokalen MySQL-Client zu
MacOS
Ubuntu/Debian
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.
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 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.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
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
Einrichten des Tunnels
3306
ein .127.0.0.1:3306
ein . Sehen Sie sich die endgültige Konfiguration unten an:Hinweis
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
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
brew install --cask mysql-shell
sudo apt install mysql-client
ssh [email protected] -L 3306:127.0.0.1:3306 -N
-L
- bindet einen lokalen Port an den entfernten Host post.-N
- bedeutet Weiterleitungsports.Hinweis
ssh [email protected] -L 3307:127.0.0.1:3306 -N
127.0.0.1:3306
mit dem Benutzernamen und Passwort des MySQL-Servers.mysqlsh --host=127.0.0.1 --port=3306 -u user -p
mysql --host=127.0.0.1 --port=3306 -u user -p
Persistente SSH-Verbindungen
Weitere Informationen