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

Crea un tunnel SSH per MySQL Remote Access

Questa guida ti mostrerà come creare una connessione sicura al tuo server MySQL o MariaDB remoto dal tuo computer locale, usando un tunnel SSH . Questo è utile se vuoi usare gli strumenti di amministrazione sul tuo computer locale per lavorare sul tuo server.

Un tunnel SSH è un tunnel crittografato realizzato tramite una connessione di protocollo SSH. Puoi utilizzare un tunnel SSH per comunicare in remoto con il database MySQL. Dopo aver seguito queste istruzioni, sarai in grado di connetterti a localhost sulla tua workstation utilizzando il tuo strumento di gestione MySQL preferito. La connessione verrà inoltrata in modo sicuro al tuo Linode tramite Internet.

Nota MariaDB è un fork di MySQL ed è considerato un sostituto drop-in. Sebbene questa guida si riferisca a MySQL, si applica ugualmente anche a MariaDB.

Prerequisiti

  • MySQL è installato.
  • MySQL è configurato per essere in ascolto su localhost (127.0.0.1). Questo è abilitato per impostazione predefinita.

Come accedere a MySQL in remoto creando un tunnel SSH con PuTTY

Questa sezione ti mostrerà come creare un tunnel SSH per MySQL su Windows, usando lo strumento PuTTY.

Allestimento del tunnel

Innanzitutto, devi stabilire una connessione di base al tuo Linode:

  1. Scarica PuTTY.

  2. Salva PuTTY sul desktop.

  3. Fare doppio clic sul file PuTTY per iniziare, non è necessario installarlo. Vedrai la seguente finestra:

  4. Inserisci il nome host o l'indirizzo IP del tuo Linode nel Nome host (o indirizzo IP) campo.

  5. Nel menu a sinistra, vai su Connessione -> SSH -> Tunnel .

  6. Nella porta di origine campo, inserisci 3306 .

  7. Nella Destinazione campo, inserisci 127.0.0.1:3306 . Vedi la configurazione finale di seguito:

  8. Fai clic su Apri per avviare la sessione SSH.

  9. Se non hai effettuato l'accesso a questo sistema con PuTTY, riceverai un avviso simile al seguente. Verifica che questo server sia quello a cui desideri connetterti, quindi fai clic su :

    Nota

    Questo avviso viene visualizzato perché PuTTY vuole che tu verifichi che il server a cui stai effettuando l'accesso sia quello che dice di essere. È improbabile, ma possibile, che qualcuno possa intercettare la tua connessione e fingere di essere il tuo Linode. Per verificare il server, confronta l'impronta digitale della chiave mostrata nell'avviso PuTTY:la stringa di numeri e lettere che iniziano con ssh-rsa nell'immagine sopra - con l'impronta digitale della chiave pubblica di Linode. Per ottenere l'impronta digitale del tuo Linode, accedi al tuo Linode tramite la console Lish (vedi la Console scheda in Linode Manager) ed eseguendo il comando seguente:

    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
    

    Le impronte delle chiavi dovrebbero corrispondere. Dopo aver fatto clic su , non riceverai ulteriori avvisi a meno che la chiave presentata a PuTTY non cambi per qualche motivo; in genere, ciò dovrebbe accadere solo se si reinstalla il sistema operativo del server remoto. Se ricevi di nuovo questo avviso per lo stesso Linode dopo che la chiave è già stata memorizzata nella cache, non dovresti fidarti della connessione e indagare ulteriormente sulla questione.

  10. Indirizza il tuo client MySQL locale a localhost:3306 . La tua connessione al server MySQL remoto verrà crittografata tramite SSH, consentendoti di accedere ai tuoi database senza eseguire MySQL su un IP pubblico.

Crea un tunnel SSH su Mac OS X o Linux

Questa sezione ti mostrerà come creare un tunnel SSH per MySQL su Mac OS X o Linux.

  1. Installa un client MySQL. L'installazione del server MySQL viene fornita preconfezionata con un'installazione del client. Per installare solo il client:

    MacOS

    brew install --cask mysql-shell
    

    Ubuntu/Debian

    sudo apt install mysql-client
    
  2. Apri un prompt dei comandi ed esegui il comando seguente per aprire il tunnel SSH.

    ssh [email protected] -L 3306:127.0.0.1:3306 -N
    

    Sostituisci <[email protected]> con il tuo nome utente SSH e il nome host o l'indirizzo IP del tuo server. La lunga stringa di numeri nel comando elenca l'IP locale, la porta locale, l'IP remoto e la porta remota, separati da due punti (: ).

    -L - associa una porta locale al post host remoto.-N - significa porte di inoltro.

    Nota

    Se stai già eseguendo un server MySQL locale sulla tua workstation, usa una porta locale diversa (3307 è una scelta comune). Il tuo nuovo comando sarebbe simile a questo:

    ssh [email protected] -L 3307:127.0.0.1:3306 -N
    
  3. Apri una nuova finestra del terminale. Indirizza il tuo client MySQL locale a 127.0.0.1:3306 con il nome utente e la password del server MySQL.

    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
    

    La tua connessione al server MySQL remoto verrà crittografata tramite SSH, consentendoti di accedere ai tuoi database senza eseguire MySQL su un IP pubblico.

  4. Quando sei pronto per chiudere la connessione, emetti un CTRL-C comando o chiudere la finestra del prompt dei comandi. Questo chiuderà il tunnel SSH.

Connessioni SSH persistenti

Se hai bisogno di un tunnel SSH persistente, considera l'utilizzo di autossh. autossh avvia e monitora una connessione SSH e la riavvia se necessario.

Maggiori informazioni

Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.

  • Utilizzo di PuTTY
  • Documentazione MySQL
  • Documentazione MariaDB
  • autossh