Trucos DevOps - Aprende a crear túneles SSH para conectarse a MySQL
Tabla de contenido:
De manera predeterminada, el servidor MySQL solo escucha en localhost, lo que significa que solo las aplicaciones que se ejecutan en el mismo host pueden acceder a él.
Sin embargo, en algunas situaciones, es posible que desee conectarse al servidor desde ubicaciones remotas. Una opción sería configurar el servidor MySQL para permitir conexiones remotas, pero eso requiere privilegios administrativos y puede causar riesgos de seguridad.
Una alternativa más segura sería crear un túnel SSH desde el sistema local hasta el servidor. La tunelización SSH es un método para crear una conexión SSH cifrada entre un cliente y una máquina servidor a través de la cual se pueden retransmitir los puertos de servicios.
En esta guía, explicaremos cómo crear un túnel SSH y conectarse al servidor MySQL desde clientes remotos. Las mismas instrucciones aplican para MariaDB.
Prerrequisitos
- Cliente SSH. Acceso SSH al sistema en el que se ejecuta el servidor MySQL.
Cree un túnel SSH en Linux y macOS
El cliente
ssh
está preinstalado en la mayoría de los sistemas basados en Linux y Unix.
ssh -N -L 3336:127.0.0.1:3306 @
Las opciones utilizadas son las siguientes:
-
-N
: le dice a SSH que no ejecute un comando remoto.-L 3336:127.0.0.1:3306
: crea un reenvío de puerto local. El puerto local (3306
), la IP de destino (127.0.0.1
) y el puerto remoto (3306
) se separan con dos puntos (:).@
- El usuario SSH remoto y la dirección IP del servidor. Para ejecutar el comando en segundo plano, use la opción-f
Si el servidor SSH está escuchando en un puerto que no sea 22 (el predeterminado) especifique el puerto con la opción-p
.
Una vez que ejecute el comando, se le pedirá que ingrese su contraseña de usuario SSH. Después de ingresarlo, iniciará sesión en el servidor y se establecerá el túnel SSH. Es una buena idea configurar una autenticación basada en clave SSH y conectarse al servidor sin ingresar una contraseña.
Ahora puede apuntar el cliente MySQL de su máquina local a
127.0.0.1:3336
ingresar las credenciales de inicio de sesión de la base de datos remota y acceder al servidor MySQL.
Por ejemplo, para conectarse al servidor MySQL utilizando la línea de comando
mysql
client, emitiría:
mysql -u MYSQL_USER -p -h 127.0.0.1
Donde
MYSQL_USER
es el usuario remoto de MySQL que tiene privilegios para acceder a la base de datos.
Cuando se le solicite, ingrese la contraseña de usuario de MySQL.
Para terminar el túnel SSH, escriba
CTRL+C
en la consola donde se ejecuta el cliente ssh.
Crear un túnel SSH en Windows
Los usuarios de Windows primero deberán descargar e instalar un programa cliente SSH. El cliente SSH de Windows más popular es PuTTY. Puedes descargar PuTTY aquí.
Realice los siguientes pasos para crear un túnel SSH para el servidor MySQL con PuTTY:
-
Inicie Putty e ingrese la dirección IP del servidor en el campo
Host name (or IP address)
:Conclusión
MySQL, el servidor de base de datos de código abierto más popular, escucha las conexiones entrantes solo en localhost. Crear un túnel SSH le permite conectarse de forma segura al servidor MySQL remoto desde su cliente local.
mysql mariadb ssh
Cómo configurar el túnel ssh para evitar un firewall

Un firewall es algo bueno, pero si te impide hacer algo, entonces el túnel SSH es una buena opción para explorar.
Cómo conectarse a un servidor ftp a través de macfusion - guía técnica

Aprenda cómo conectarse a un servidor FTP en Mac directamente desde Finder, a través de Macfusion.
Cómo configurar el túnel ssh (reenvío de puertos)

El túnel SSH o el reenvío de puertos SSH es un método para crear una conexión SSH encriptada entre un cliente y una máquina servidor a través de la cual se pueden retransmitir los puertos de servicios.