Icono del sitio Binario 0

Manual paso a paso para realizar tunneling SSH para conexiones MySQL en modo localhost

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Artículos Guías Manuales Sistemas Linux Windows Binario 0

FacebookEmailWhatsAppLinkedInRedditXShare

SSH tunneling es una técnica poderosa que permite acceder de forma segura a servicios que están detrás de un firewall o red interna. Aquí aprenderás cómo configurar un túnel SSH para conectar a una base de datos MySQL de forma segura como si estuviera en localhost.

Paso 1: Requisitos previos

  1. Servidor de base de datos MySQL. Asegúrate de que la base de datos MySQL está funcionando en el servidor remoto.
  2. Acceso SSH al servidor remoto. Confirma que puedes conectarte al servidor que aloja la base de datos MySQL.
  3. Cliente MySQL instalado. En tu máquina local, verifica que tienes un cliente MySQL instalado con:

    mysql --version

Paso 2: Conexión básica al servidor remoto

Primero, verifica que puedes acceder al servidor remoto mediante SSH:

ssh usuario_remoto@ip_servidor

Si te conectas correctamente, puedes proceder.

Paso 3: Configuración del túnel SSH

Un túnel SSH redirige un puerto de tu máquina local hacia el puerto donde MySQL escucha en el servidor remoto (por defecto, 3306).

Comando básico

Ejecuta este comando para crear el túnel:

ssh -L 3307:127.0.0.1:3306 usuario_remoto@ip_servidor

Aquí:

Mantén esta conexión abierta mientras trabajas.

Paso 4: Conectarte a MySQL desde tu máquina local

Ahora puedes conectarte a MySQL usando el túnel SSH. En una nueva terminal, usa tu cliente MySQL local con el siguiente comando:

mysql -h 127.0.0.1 -P 3307 -u usuario_mysql -p

Aquí:

Introduce la contraseña y deberías estar conectado.

Paso 5: Configuración opcional del archivo SSH

Para simplificar futuros accesos, puedes configurar un túnel persistente en tu archivo ~/.ssh/config. Añade algo como esto:

Host mysql-tunnel
HostName ip_servidor
User usuario_remoto
LocalForward 3307 127.0.0.1:3306

Ahora puedes establecer el túnel simplemente con:

ssh mysql-tunnel

Paso 6: Solución de problemas

Si algo no funciona, revisa:

  1. Puertos abiertos: Asegúrate de que el puerto 3306 está accesible desde el servidor remoto. Puedes probarlo ejecutando:

    telnet 127.0.0.1 3306

    en el servidor remoto.
  2. Firewall: Confirma que el firewall del servidor permite conexiones a MySQL.
  3. Cliente MySQL: Si recibes errores al conectarte desde tu máquina local, verifica que el cliente MySQL puede acceder al puerto 3307.

Paso 7: Automatización (opcional)

Puedes usar un script para crear y gestionar el túnel de forma sencilla:

#!/bin/bash

# Variables
REMOTE_USER="usuario_remoto"
REMOTE_HOST="ip_servidor"
LOCAL_PORT=3307
REMOTE_PORT=3306

# Crear el túnel SSH
ssh -f -N -L $LOCAL_PORT:127.0.0.1:$REMOTE_PORT $REMOTE_USER@$REMOTE_HOST

echo "Túnel SSH creado. Conéctate a MySQL usando localhost:$LOCAL_PORT"

Guarda este script como mysql_tunnel.sh, hazlo ejecutable (chmod +x mysql_tunnel.sh) y ejecútalo cuando lo necesites.

Paso 8: Conclusión

Con estos pasos, puedes conectarte de manera segura a un servidor MySQL remoto como si estuviera en localhost. Este método es útil para desarrolladores, administradores de sistemas o cualquier persona que necesite acceder a bases de datos en redes protegidas.

Salir de la versión móvil