Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Remote-Zugriff auf MySQL-Server über SSH-Tunnel

Wir können sicher auf MySQL auf einem Remote-System zugreifen, indem wir MySQL über den SSH-Tunnel verbinden. Dieses Tutorial enthält die Schritte, die erforderlich sind, um mit Putty auf Windows- und SSH auf Linux-Systemen eine Remote-Verbindung zum MySQL-Server über einen SSH-Tunnel herzustellen. Es zeigt, wie der lokale Port von MySQL, d. h. 3306, über den SSH-Port 22 des Remote-Systems an den Remote-Port von MySQL, d. h. 3306, weitergeleitet wird. Dadurch wird sichergestellt, dass wir sicher über Port 22 mit dem Remote-Server kommunizieren, indem wir den lokalen Port 3306 mit dem Port 3306 auf dem Remote-Server verbinden.

Voraussetzungen

Ein entfernter Server, auf dem ein MySQL-Server installiert ist. Sie können How To Install MySQL 8 on Ubuntu 20.04 LTS folgen.

Stellen Sie außerdem sicher, dass Port 22 offen und Port 3306 durch die Firewall auf dem Remote-System mit MySQL-Server blockiert ist. Dieses Tutorial geht auch davon aus, dass der MySQL-Server nicht auf dem lokalen System läuft. Dadurch wird sichergestellt, dass der Port 3306 auf dem lokalen System für die Portweiterleitung frei ist.

Außerdem benötigen wir einen SSH-Zugriff auf das System, auf dem der MySQL-Server installiert ist und läuft. Wir können entweder den SSH-Benutzernamen und das Passwort verwenden oder SSH-Benutzername und Schlüssel um sich mit dem Remote-System zu verbinden.

Installieren Sie Putty unter Windows 10

Wir können Putty auf den Windows-Systemen verwenden, um auf den MySQL-Server zuzugreifen, der auf einem Remote-Server installiert ist. Falls Sie ein Linux-basiertes System verwenden, können Sie zum SSH-Abschnitt wechseln.

Öffnen Sie die offizielle Download-Seite von Putty, um das MSI-Installationsprogramm herunterzuladen, wie in Abb. 1 hervorgehoben.

Abb. 1

Wir können die ausführbare Putty-Datei auch verwenden, ohne sie zu installieren. Scrollen Sie auf der Download-Seite nach unten, um die ausführbare Datei herunterzuladen.

Starten Sie nun Putty. Die Standardoptionen von Putty sollten Abb. 2 ähneln.

Abb. 2

Sichere Verbindung zu MySQL mit Putty

Dieser Abschnitt enthält die Schritte zur Verwendung von Putty, um von einem entfernten System über den SSH-Tunnel eine sichere Verbindung zu MySQL herzustellen. Füllen Sie nun die Remote-Host-Details aus, wie in Abb. 3 gezeigt.

Abb. 3

Klicken Sie außerdem auf Verbindung -> SSH -> Tunnel wie in Abb. 3 hervorgehoben. Füllen Sie nun die SSH-Port-Weiterleitungsdetails aus, wie in Abb. 4 gezeigt. Der Quellport sollte auf 3306 eingestellt sein und Ziel sollte auf 127.0.0.1:3306 eingestellt sein .

Abb. 4

Klicken Sie auf die Hinzufügen-Schaltfläche nachdem Sie den Quellport und das Ziel ausgefüllt haben. Es aktualisiert die Weitergeleiteten Ports wie in Abb. 4 gezeigt. Klicken Sie außerdem auf die Auth-Option und wählen Sie den SSH-Schlüssel wie in Abb. 5 gezeigt. Stellen Sie sicher, dass Sie den privaten Schlüssel mit Puttygen generiert haben.

Abb. 5

Klicken Sie nun auf die Öffnen-Schaltfläche um die Verbindung zu öffnen. Es wird zum ersten Mal die Sicherheitswarnung angezeigt, wie in Abb. 6 gezeigt.

Abb. 6

Klicken Sie auf die Schaltfläche Ja um die Verbindung zu akzeptieren. Es wird nach der Passphrase gefragt, falls Sie diese beim Generieren des privaten Schlüssels festgelegt haben. Bei einer erfolgreichen Verbindung werden die Details des Remote-Systems angezeigt, wie in Abb. 7 gezeigt.

Abb. 7

Abgesehen von der Verbindung über SSH leitete es auch den lokalen Port 3306 an den Port 3306 auf dem Remote-Server weiter. Schließen Sie Putty nicht, da es den SSH-Tunnel zum Remote-Server offen hält. Starten Sie nun einen beliebigen MySQL-Client und versuchen Sie, eine Verbindung zum Remote-MySQL-Server herzustellen. Ich habe MySQL Workbench zu Demonstrationszwecken verwendet. Der Startbildschirm von Workbench sollte ähnlich wie in Abb. 8 aussehen. Sie können auch den Anweisungen unter Using Workbench To Connect To Remote MySQL Server Over SSH Tunnel folgen.

Abb. 8

Klicken Sie nun auf das Plus-Symbol um eine neue Lokale Verbindung zu erstellen wie in Abb. 8 hervorgehoben. Es werden die Optionen zum Hinzufügen einer Verbindung angezeigt, wie in Abb. 9 gezeigt.

Abb. 9

Geben Sie einen Verbindungsnamen an und behalten Sie den Hostnamen 127.0.0.1 und den Port 3306 bei, wie in Abb. 9 gezeigt. Klicken Sie nun auf Test Connection, um die Verbindung zum Remote-MySQL-Server über den SSH-Tunnel zu testen. Es wird nach dem Passwort fragen, wie in Abb. 10 gezeigt, falls Sie es nicht im Tresor gespeichert haben.

Abb. 10

Geben Sie nun das Passwort ein und klicken Sie auf die OK-Schaltfläche um die Verbindung zu testen. Es sollte eine Erfolgsmeldung bei erfolgreicher Verbindung anzeigen, wie in Abb. 11 gezeigt.

Abb. 11

Klicken Sie nun auf die OK-Schaltfläche um die Verbindungsmeldung zu schließen, und klicken Sie erneut auf die OK-Schaltfläche um den Verbindungsassistenten zu schließen. Die Verbindung wird der Verbindungsbibliothek hinzugefügt, wie in Abb. 12 gezeigt.

Abb. 12

Klicken Sie nun auf die neu hinzugefügte Verbindung. Es sollte sich mit dem entfernten Server verbinden und die Datenbanken des entfernten MySQL-Servers auflisten, wie in Abb. 13 gezeigt.

Abb. 13

Jetzt können wir auf dem Remote-MySQL-Server mit Workbench auf dem lokalen System arbeiten. Schließen Sie außerdem Workbench und Putty, um die Verbindung nach Abschluss der Arbeit auf dem Remote-MySQL-Server zu beenden.

Sichere Verbindung zu MySQL mit SSH

Wir können eine Verbindung zum Remote-MySQL-Server herstellen, indem wir den lokalen Port 3306 mit dem SSH-Befehl wie unten gezeigt an den Remote-Port 3306 weiterleiten. Stellen Sie ähnlich wie im vorherigen Abschnitt sicher, dass der lokale Port 3306 frei ist.

Notizen :Die unten aufgeführten Befehle wurden auf Ubuntu Desktop getestet. Die Schritte und Befehle sollten auf anderen Linux-Systemen ähnlich sein.

# Shutdown local MySQL - Else use a different local port
sudo service mysql stop

# Install MySQL Client - If required
sudo apt install mysql-client

# Port Forwarding - Command
ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]

# Port Forwarding - Example
ssh -N -L 3306:127.0.0.1:3306 [email protected]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]

Die oben genannten Befehle öffnen den SSH-Tunnel und verbinden den lokalen Port 3306 mit dem entfernten Port 3306. Jetzt können wir uns mit dem MySQL-Client mit dem entfernten MySQL-Server verbinden. Sie können sich auf den vorherigen Abschnitt beziehen, um MySQL Workbench zu verwenden, das auf dem lokalen System installiert ist.

Siehe auch Abb. 14 und Abb. 15, um den SSH-Tunnel zu öffnen und eine Verbindung zum Remote-MySQL-Server herzustellen.

Abb. 14

Abb. 15

Zusammenfassung

Dieses Tutorial enthält die Schritte, die zum Herstellen einer Verbindung zum Remote-MySQL-Server über einen SSH-Tunnel für Windows- und Linux-Systeme erforderlich sind.