sql >> Base de Datos >  >> RDS >> Mysql

Crear un túnel SSH para acceso remoto MySQL

Esta guía le mostrará cómo realizar una conexión segura a su servidor remoto MySQL o MariaDB desde su computadora local, usando un túnel SSH . Esto es útil si desea utilizar herramientas de administración en su computadora local para trabajar en su servidor.

Un túnel SSH es un túnel encriptado realizado a través de una conexión de protocolo SSH. Puede usar un túnel SSH para comunicarse de forma remota con la base de datos MySQL. Después de seguir estas instrucciones, podrá conectarse a localhost en su estación de trabajo usando su herramienta de administración de MySQL favorita. La conexión se reenviará de forma segura a su Linode a través de Internet.

Nota MariaDB es una bifurcación de MySQL y se considera un reemplazo directo. Aunque esta guía se refiere a MySQL, también se aplica a MariaDB.

Requisitos previos

  • MySQL está instalado.
  • MySQL está configurado para escuchar en localhost (127.0.0.1). Esto está habilitado de forma predeterminada.

Cómo acceder a MySQL de forma remota creando un túnel SSH con PuTTY

Esta sección le mostrará cómo crear un túnel SSH a MySQL en Windows, usando la herramienta PuTTY.

Configurando el Túnel

Primero, debe establecer una conexión básica con su Linode:

  1. DescargarPuTTY.

  2. Guarde PuTTY en su escritorio.

  3. Haga doble clic en el archivo PuTTY para comenzar; no es necesario instalarlo. Verá la siguiente ventana:

  4. Ingrese el nombre de host o la dirección IP de su Linode en el Nombre de host (o dirección IP) campo.

  5. En el menú de la izquierda, ve a Conexión -> SSH -> Túneles .

  6. En el Puerto de origen campo, ingrese 3306 .

  7. En el Destino campo, ingrese 127.0.0.1:3306 . Vea la configuración final a continuación:

  8. Haz clic en Abrir para iniciar la sesión SSH.

  9. Si no ha iniciado sesión en este sistema con PuTTY antes, recibirá una advertencia similar a la siguiente. Verifique que este servidor es el que desea conectar, luego haga clic en :

    Nota

    Esta advertencia aparece porque PuTTY quiere que verifiques que el servidor en el que estás iniciando sesión es quien dice ser. Es poco probable, pero posible, que alguien pueda estar espiando su conexión y haciéndose pasar por su Linode. Para verificar el servidor, compare la huella digital de la clave que se muestra en la advertencia de PuTTY:la cadena de números y letras que comienza con ssh-rsa en la imagen de arriba, con la huella dactilar de la clave pública de Linode. Para obtener la huella digital de su Linode, inicie sesión en su Linode a través de la consola Lish (consulte la Consola pestaña en Linode Manager) y ejecutando el siguiente comando:

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

    Las huellas dactilares clave deben coincidir. Una vez que haga clic en , no recibirá más advertencias a menos que la clave presentada a PuTTY cambie por algún motivo; por lo general, esto solo debería suceder si reinstala el sistema operativo del servidor remoto. Si recibe esta advertencia nuevamente para el mismo Linode después de que la clave ya se haya almacenado en caché, no debe confiar en la conexión e investigar más a fondo.

  10. Dirija su cliente MySQL local a localhost:3306 . Su conexión al servidor MySQL remoto se cifrará a través de SSH, lo que le permitirá acceder a sus bases de datos sin ejecutar MySQL en una IP pública.

Crea un túnel SSH en Mac OS X o Linux

Esta sección le mostrará cómo crear un túnel SSH a MySQL en Mac OS X o Linux.

  1. Instale un cliente MySQL. La instalación del servidor MySQL viene preempaquetada con una instalación del cliente. Para instalar solo el cliente:

    MacOS

    brew install --cask mysql-shell
    

    Ubuntu/Debian

    sudo apt install mysql-client
    
  2. Abra un símbolo del sistema y ejecute el siguiente comando para abrir el túnel SSH.

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

    Reemplace <[email protected]> con su nombre de usuario SSH y el nombre de host o la dirección IP de su servidor. La larga cadena de números en el comando enumera la IP local, el puerto local, la IP remota y el puerto remoto, separados por dos puntos (: ).

    -L - vincula un puerto local a la publicación del host remoto. -N - significa puertos de reenvío.

    Nota

    Si ya está ejecutando un servidor MySQL local en su estación de trabajo, use un puerto local diferente (3307 es una opción común). Su nuevo comando se vería así:

    ssh [email protected] -L 3307:127.0.0.1:3306 -N
    
  3. Abre una nueva ventana de terminal. Dirija su cliente MySQL local a 127.0.0.1:3306 con el nombre de usuario y la contraseña del servidor 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
    

    Su conexión al servidor MySQL remoto se cifrará a través de SSH, lo que le permitirá acceder a sus bases de datos sin ejecutar MySQL en una IP pública.

  4. Cuando esté listo para cerrar la conexión, emita un CTRL-C comando o cierre la ventana del símbolo del sistema. Esto cerrará el túnel SSH.

Conexiones SSH persistentes

Si necesita un túnel SSH persistente, considere usar autossh. autossh inicia y monitorea una conexión SSH y la reinicia si es necesario.

Más información

Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.

  • Uso de masilla
  • Documentación MySQL
  • Documentación de MariaDB
  • autossh