Para conectarte a un servidor MySQL a través de un túnel SSH con un bastión sin redirección de puertos locales, puedes utilizar el comando mysql
con soporte SSH directamente o aprovechar un proxy mediante SSH. A continuación cómo hacerlo paso a paso, conectarte a MySQL a través de un túnel SSH con un bastión usando ProxyJump sin usar redirección de puertos locales. Todo estará configurado directamente en tu archivo ~/.ssh/config
.
Escenario:
- Servidor Bastión (intermediario):
Usuario:usuario_bastion
IP:ip_bastion
- Servidor de Base de Datos (destino final):
Usuario:usuario_destino
IP:ip_destino
MySQL escucha en127.0.0.1:3306
. - Tu máquina local:
Ejecutarás comandos para conectarte sin configurar redirecciones de puertos locales.
Paso 1: Verifica las conexiones básicas
- Conexión al bastión:
Asegúrate de poder conectarte al servidor bastión desde tu máquina local:ssh usuario_bastion@ip_bastion
- Conexión desde el bastión al servidor de base de datos:
Una vez conectado al bastión, prueba que puedes llegar al servidor MySQL:ssh usuario_destino@ip_destino
- Conexión a MySQL desde el servidor destino:
Una vez en el servidor de base de datos, verifica que el servicio MySQL está accesible:mysql -h 127.0.0.1 -u usuario_mysql -p
Si todos estos pasos funcionan, continúa al siguiente.
Paso 2: Configura el archivo SSH para usar ProxyJump
- Edita el archivo
~/.ssh/config
en tu máquina local:
Configura el acceso al bastión y al servidor de base de datos. Añade lo siguiente:Host bastion
HostName ip_bastion
User usuario_bastion
IdentityFile ~/.ssh/id_rsa # Cambia esto si usas otra clave SSH
Host mysql-server
HostName ip_destino
User usuario_destino
ProxyJump bastion
Explicación:Host bastion
: Define cómo conectarte al servidor bastión.Host mysql-server
: Define cómo conectarte al servidor de base de datos.ProxyJump bastion
: Especifica que el acceso al servidor MySQL debe pasar primero por el bastión.
- Prueba la conexión SSH a MySQL:
Desde tu máquina local, verifica que puedes llegar al servidor de base de datos:ssh mysql-server
Paso 3: Conexión directa a MySQL con ProxyJump
Ahora que tienes configurado el ProxyJump
, puedes conectarte directamente a MySQL desde tu máquina local con el siguiente comando:
mysql -h 127.0.0.1 -P 3306 -u usuario_mysql -p --protocol=TCP --ssh-option="-o ProxyJump=bastion"
Explicación del comando:
-h 127.0.0.1
: MySQL escucha en127.0.0.1
en el servidor destino.-P 3306
: Puerto donde MySQL está activo.-u usuario_mysql
: Usuario para autenticarte en MySQL.-p
: Solicitará la contraseña de MySQL al ejecutar.--protocol=TCP
: Fuerza la conexión TCP al usar el túnel SSH.--ssh-option="-o ProxyJump=bastion"
: Indica que el acceso debe pasar por el bastión configurado en~/.ssh/config
.
Paso 4: Validación de la conexión
Cuando ejecutes el comando anterior, el cliente MySQL te pedirá la contraseña de usuario_mysql
. Una vez autenticado, deberías poder interactuar con la base de datos de manera normal.
Beneficios de usar ProxyJump
- Simplicidad: Toda la lógica del túnel SSH está en
~/.ssh/config
. - Seguridad: No abres ni rediriges puertos locales.
- Flexibilidad: Puedes reutilizar esta configuración para otros servicios o comandos.
Ahora puedes conectarte a MySQL a través de un bastión sin complicaciones adicionales.