sql >> Database teknologi >  >> RDS >> Mysql

Fjernadgang til MySQL-server via SSH-tunnel

Vi kan sikkert få adgang til MySQL på et fjernsystem ved at forbinde MySQL over SSH-tunnelen. Denne vejledning indeholder de nødvendige trin til fjernforbindelse til MySQL-server via SSH-tunnel ved hjælp af Putty på Windows og SSH på Linux-systemer. Den viser, hvordan man videresender den lokale port på MySQL, dvs. 3306, til den eksterne port på MySQL, dvs. 3306, via SSH-port 22 på fjernsystemet. Dette sikrer, at vi kommunikerer sikkert med fjernserveren over port 22 ved at forbinde den lokale port 3306 til porten 3306 på fjernserveren.

Forudsætninger

En fjernserver med MySQL-server installeret på den. Du kan følge Sådan installeres MySQL 8 på Ubuntu 20.04 LTS.

Sørg også for, at port 22 er åben, og port 3306 er blokeret af firewallen på fjernsystemet med MySQL-server. Denne vejledning antager også, at MySQL-serveren ikke kører på det lokale system. Dette sikrer, at port 3306 på det lokale system er fri til portvideresendelse.

Vi har også brug for SSH-adgang til det system, som MySQL-serveren er installeret og kører på. Vi kan enten bruge SSH-brugernavnet og -adgangskoden eller SSH-brugernavn og nøglen for at oprette forbindelse til fjernsystemet.

Installer Putty på Windows 10

Vi kan bruge Putty på Windows-systemerne til at få adgang til MySQL-serveren installeret på en fjernserver. Hvis du bruger et Linux-baseret system, kan du gå til SSH-sektionen.

Åbn den officielle downloadside af Putty for at downloade MSI-installationsprogrammet som fremhævet i fig. 1.

Fig. 1

Vi kan også bruge den eksekverbare Putty uden at installere den. Rul ned på downloadsiden for at downloade den eksekverbare fil.

Start nu Putty. Standardindstillingerne for Putty skal svare til fig. 2.

Fig. 2

Sikker forbindelse til MySQL ved hjælp af Putty

Dette afsnit indeholder trinene til at bruge Putty til sikker forbindelse til MySQL over SSH-tunnelen fra et fjernsystem. Udfyld nu fjernværtsoplysningerne som vist i fig. 3.

Fig. 3

Klik også på Forbindelse -> SSH -> Tunneller som fremhævet i Fig. 3. Udfyld nu SSH-portvideresendelsesdetaljerne som vist i Fig. 4. Kildeporten skal indstilles til 3306 og Destination skal indstilles til 127.0.0.1:3306 .

Fig. 4

Klik på knappen Tilføj efter at have udfyldt kildeporten og destinationen. Det vil opdatere de videresendte porte som vist i fig. 4. Klik også på Auth-indstillingen og vælg SSH-nøglen som vist i fig. 5. Sørg for, at du har genereret den private nøgle ved hjælp af Puttygen.

Fig. 5

Klik nu på Åbn-knappen for at åbne forbindelsen. Den viser sikkerhedsadvarslen for første gang som vist i fig. 6.

Fig. 6

Klik på knappen Ja for at acceptere forbindelsen. Det vil bede om adgangssætningen, hvis du har indstillet, mens du genererer den private nøgle. Ved en vellykket forbindelse vil den vise fjernsystemdetaljerne som vist i Fig. 7.

Fig. 7

Udover at oprette forbindelse over SSH, videresendte den også den lokale port 3306 til porten 3306 på fjernserveren. Luk ikke Putty, da den holder SSH-tunnelen åben til fjernserveren. Start nu enhver MySQL-klient og prøv at oprette forbindelse til den eksterne MySQL-server. Jeg har brugt MySQL Workbench til demonstrationsformål. Startskærmen på Workbench skal ligne fig. 8. Du kan også følge Brug af Workbench til at oprette forbindelse til Remote MySQL Server over SSH Tunnel.

Fig. 8

Klik nu på Plus-ikonet for at oprette en ny lokal forbindelse som fremhævet i fig. 8. Det vil vise mulighederne for at tilføje forbindelse som vist i fig. 9.

Fig. 9

Angiv et forbindelsesnavn, og behold værtsnavnet som 127.0.0.1 og porten som 3306 som vist i fig. 9. Klik nu på Testforbindelsen for at teste forbindelsen til den eksterne MySQL-server over SSH-tunnelen. Den vil bede om adgangskode som vist i fig. 10, hvis du ikke har gemt den i boksen.

Fig. 10

Udfyld nu adgangskoden, og klik på OK-knappen for at teste forbindelsen. Den skulle vise en succesmeddelelse om forbindelsessucces som vist i fig. 11.

Fig. 11

Klik nu på OK-knappen for at lukke forbindelsesmeddelelsen, og klik igen på OK-knappen for at lukke forbindelsesguiden. Det tilføjer forbindelsen til forbindelsesbiblioteket som vist i fig. 12.

Fig. 12

Klik nu på den nyligt tilføjede forbindelse. Den skal oprette forbindelse til fjernserveren og liste databaserne for den eksterne MySQL-server som vist i fig. 13.

Fig. 13

Nu kan vi arbejde på en ekstern MySQL-server ved hjælp af Workbench på det lokale system. Luk også Workbench og Putty for at afbryde forbindelsen efter at have afsluttet arbejdet på den eksterne MySQL-server.

Sikker forbindelse til MySQL ved hjælp af SSH

Vi kan oprette forbindelse til den eksterne MySQL-server ved at videresende den lokale port 3306 til den eksterne port 3306 ved hjælp af SSH-kommandoen som vist nedenfor. I lighed med det foregående afsnit skal du sørge for, at den lokale port 3306 er ledig.

Noter :Nedenstående kommandoer er blevet testet på Ubuntu Desktop. Trinene og kommandoerne bør være ens på andre Linux-systemer.

# 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]

De ovennævnte kommandoer åbner SSH-tunnelen og forbinder den lokale port 3306 til den eksterne port 3306. Nu kan vi oprette forbindelse til den eksterne MySQL-server ved hjælp af MySQL-klienten. Du kan henvise til det forrige afsnit for at bruge MySQL Workbench installeret på det lokale system.

Se også Fig. 14 og Fig. 15 for at åbne SSH-tunnelen og oprette forbindelse til den eksterne MySQL-server.

Fig. 14

Fig. 15

Oversigt

Denne vejledning indeholdt de nødvendige trin for at oprette forbindelse til den eksterne MySQL-server over SSH-tunnelen til Windows- og Linux-systemer.


  1. CASESTUDIE:ARKWARE MS ACCESS CRM

  2. java.sql.SQLException Parameterindeks uden for område (1> antal parametre, som er 0)

  3. mysqldump bedste praksis:Del 1 – MySQL-forudsætninger

  4. Fejl i SQL Server under import af CSV-fil på trods af at varchar(MAX) blev brugt til hver kolonne