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

Accedi in remoto al server MySQL tramite il tunnel SSH

Possiamo accedere in modo sicuro a MySQL su un sistema remoto collegando MySQL tramite il tunnel SSH. Questo tutorial fornisce i passaggi necessari per connettersi in remoto al server MySQL tramite tunnel SSH utilizzando Putty su Windows e SSH su sistemi Linux. Mostra come inoltrare la porta locale di MySQL, ad esempio 3306, alla porta remota di MySQL, ad esempio 3306, tramite la porta SSH 22 del sistema remoto. Ciò garantisce che comunichiamo in modo sicuro con il server remoto sulla porta 22, collegando la porta locale 3306 alla porta 3306 sul server remoto.

Prerequisiti

Un server remoto su cui è installato un server MySQL. Puoi seguire Come installare MySQL 8 su Ubuntu 20.04 LTS.

Inoltre, assicurati che la porta 22 sia aperta e che la porta 3306 sia bloccata dal firewall sul sistema remoto con server MySQL. Questo tutorial presuppone anche che il server MySQL non sia in esecuzione sul sistema locale. Ciò garantisce che la porta 3306 sul sistema locale sia libera per il port forwarding.

Abbiamo anche bisogno dell'accesso SSH al sistema su cui è installato e in esecuzione il server MySQL. Possiamo utilizzare il nome utente e password SSH o nome utente SSH e chiave per connettersi al sistema remoto.

Installa Putty su Windows 10

Possiamo usare Putty sui sistemi Windows per accedere al server MySQL installato su un server remoto. Nel caso in cui utilizzi un sistema basato su Linux, puoi passare alla sezione SSH.

Apri la pagina di download ufficiale di Putty per scaricare il programma di installazione MSI come evidenziato in Fig 1.

Fig 1

Possiamo anche usare l'eseguibile Putty senza installarlo. Scorri verso il basso la Pagina di download per scaricare il file eseguibile.

Ora avvia Putty. Le opzioni predefinite di Putty dovrebbero essere simili alla Fig 2.

Fig 2

Connessione sicura a MySQL utilizzando Putty

Questa sezione fornisce i passaggi per utilizzare Putty per connettersi in modo sicuro a MySQL tramite il tunnel SSH da un sistema remoto. Ora riempi i dettagli dell'host remoto come mostrato in Fig 3.

Fig 3

Inoltre, fai clic su Connessione -> SSH -> Tunnel come evidenziato in Fig 3. Ora inserisci i dettagli del port forwarding SSH come mostrato in Fig 4. La porta Source dovrebbe essere impostata su 3306 e Destinazione deve essere impostato su 127.0.0.1:3306 .

Fig 4

Fai clic sul pulsante Aggiungi dopo aver riempito la porta di origine e la destinazione. Aggiornerà le porte inoltrate come mostrato in Fig 4. Inoltre, fai clic sull'opzione Auth e scegli la chiave SSH come mostrato in Fig 5. Assicurati di aver generato la chiave privata usando Puttygen.

Fig 5

Ora fai clic sul pulsante Apri per aprire la connessione. Mostrerà l'avviso di sicurezza per la prima volta come mostrato in Fig 6.

Fig 6

Fai clic sul pulsante Sì per accettare la connessione. Richiederà la passphrase nel caso in cui sia stata impostata durante la generazione della chiave privata. In caso di connessione riuscita, mostrerà i dettagli del sistema remoto come mostrato in Fig 7.

Fig 7

Oltre a connettersi tramite SSH, ha anche inoltrato la porta locale 3306 alla porta 3306 sul server remoto. Non chiudere Putty poiché mantiene aperto il tunnel SSH sul server remoto. Ora avvia qualsiasi client MySQL e prova a connetterti al server MySQL remoto. Ho usato MySQL Workbench a scopo dimostrativo. La schermata iniziale di Workbench dovrebbe essere simile alla Fig 8. Puoi anche seguire Utilizzo di Workbench per connettersi al server MySQL remoto tramite il tunnel SSH.

Fig 8

Ora fai clic sull'Icona Più per creare una nuova connessione locale come evidenziato in Fig 8. Mostrerà le opzioni per aggiungere connessione come mostrato in Fig 9.

Fig 9

Fornisci un nome di connessione e mantieni Hostname come 127.0.0.1 e Port come 3306 come mostrato in Fig 9. Ora fai clic su Test Connection per testare la connessione al server MySQL remoto sul tunnel SSH. Richiederà la password come mostrato in Fig 10 nel caso in cui non l'hai memorizzata nel Vault.

Fig 10

Ora inserisci la password e fai clic sul pulsante OK per testare la connessione. Dovrebbe mostrare un messaggio di successo in caso di connessione riuscita, come mostrato in Fig 11.

Fig 11

Ora fai clic sul pulsante OK per chiudere il messaggio di connessione e fare nuovamente clic sul pulsante OK per chiudere la procedura guidata di connessione. Aggiungerà la connessione alla libreria delle connessioni come mostrato in Fig 12.

Fig 12

Ora fai clic sulla connessione appena aggiunta. Dovrebbe connettersi al server remoto ed elencare i database del server MySQL remoto come mostrato in Fig 13.

Fig 13

Ora possiamo lavorare su un server MySQL remoto usando Workbench sul sistema locale. Inoltre, chiudi Workbench e Putty per terminare la connessione dopo aver completato il lavoro sul server MySQL remoto.

Connessione sicura a MySQL tramite SSH

Possiamo connetterci al server MySQL remoto inoltrando la porta locale 3306 alla porta remota 3306 utilizzando il comando SSH come mostrato di seguito. Simile alla sezione precedente, assicurati che la porta locale 3306 sia libera.

Note :I comandi menzionati di seguito sono stati testati su Ubuntu Desktop. I passaggi e i comandi dovrebbero essere simili su altri sistemi Linux.

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

I comandi sopra menzionati aprono il tunnel SSH e collegano la porta locale 3306 alla porta remota 3306. Ora possiamo connetterci al server MySQL remoto utilizzando il client MySQL. Puoi fare riferimento alla sezione precedente per utilizzare MySQL Workbench installato sul sistema locale.

Inoltre, fare riferimento alla Fig 14 e alla Fig 15 per aprire il tunnel SSH e connettersi al server MySQL remoto.

Fig 14

Fig 15

Riepilogo

Questo tutorial ha fornito i passaggi necessari per connettersi al server MySQL remoto tramite tunnel SSH per sistemi Windows e Linux.