# Cómo Conectar a MySQL Usando ProxyJump y un Servidor Bastión Sin Redirección de Puertos Locales

- Link: https://binariocero.com/linux/como-conectar-a-mysql-usando-proxyjump-y-un-servidor-bastion-sin-redireccion-de-puertos-locales
- Published: 2024-12-05T12:16:02+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

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 en `127.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**

 1. **Conexión al bastión:**
    Asegúrate de poder conectarte al servidor bastión desde
    tu máquina local:`ssh usuario_bastion@ip_bastion`
 2. **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`
 3. **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**

 1. **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:**
 2.  * `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.
 3. **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:

    ```wp-block-preformatted
    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 en `127.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**

 1. **Simplicidad:** Toda la lógica del túnel SSH está en `~/.ssh/config`.
 2. **Seguridad:** No abres ni rediriges puertos locales.
 3. **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.
