Crear un tunel SSH para la conexión a un servidor MySQL detrás de un firewall con Windows utilizando Putty

Introducción.

De manera análoga a como se realizó el tunel SSH utilizando Linux, también es posible implementarlo en Windows gracias al uso de herramientas de terceros como Putty.

Para la verificación de la conexión a la base de datos en lugar de la herramienta básica de línea de comando (que también debe funcionar normalmente) se utilizará MySQL Workbench que es la herramienta de administración gráfica que provee el motor de bases de datos.

Implementación de la solución.

Crear la especificación del tunel en Putty.

Este paso sólo es necesario realizarlo una única vez mientras se configura el perfil en Putty, en ocasiones posteriores sólo será necesario invocarlo.

Ejecute Putty.exe.

Session en Putty.exe
Session en Putty.exe

En la Session (lado izquierdo) especifique la siguiente información.

1. Nombre del servidor SSH.  desarrollo.com para este ejemplo.

2. Puerto del servicio SSH.  Es el puerto 22 por defecto.  Elija además el tipo de conexión (Connection type) SSH.

3. Especifique un nombre para almacenar la sesión (Saved Sessions).  MiTunel para este ejemplo.

4. Presione el botón guardar (Save) para almacenar la configuración recién especificada.

Connection > SSH en Putty.exe
Connection > SSH en Putty.exe

En las opciones de Connection > SSH elija la casilla de verificación Don’t start a shell para evitar que se cree una consola de comandos interactiva ya que sólo se desea crear el tunel.

Connection > SSH > Tunnels en Putty.exe
Connection > SSH > Tunnels en Putty.exe

Determine la información relacionada con los lados del tunel.

5. Especifique el puerto local desde el cual se iniciará el tunel.  3307 en este caso.

6. Especifique el destino y su puerto donde terminará el tunel.  localhost:3306 para este ejemplo.

Presione el botón agregar (Add) para almacenar los extremos del tunel.

Finalmente almacena la configuración establecida regresando a la sección de Session y presionando el botón de guardar (Save).

Establecer un tunel previamente especificado.

Esto se puede hacer de dos maneras, una desde la interfaz gráfica de Putty seleccionando MiTunel en la lista de las sesiones guardadas (Saved Sessions), presionando el botón cargar (Load) y abriendo la sesión presionando el botón (Open).

Una segunda alternativa es desde la línea de comando ejecutando la siguiente instrucción.

C:rutaaputty.exe -load MiTunel

En ambos casos el resultado es el mismo, aparecerá una ventana de login para realizar la autenticación con el servidor remoto (6).

Autenticación de usuario con SSH.
Autenticación de usuario con SSH.

Realizar la conexión a MySQL a través del tunel SSH.

Como se mencionó inicialmente para la verificación de la conexión se utilizará MySQL Workbench.

Connect to database
Connect to database

Debe tenerse muy en cuenta que gracias al tunel recién creado, la aplicación cliente de la base de datos interpretará que el motor de base de datos se encuentra ubicado localmente (9) y que su puerto es el 3307 (10) -ver 5 y 6-.

4 thoughts on “Crear un tunel SSH para la conexión a un servidor MySQL detrás de un firewall con Windows utilizando Putty”

  1. Muchas gracias. Me sirvió bastante tu articulo, ya que actualmente estoy desarrollando una aplicación cliente que se conecta a una bd en un servidor y tenia varios problemas de conectividad. Ahora solo una pregunta a ver si me puedes ayudar. ¿Sabes como ejecutar esta aplicación como un servicio y configuarla para que no pida usuario y contraseña? es decir que cuando se inicie un equipo con Windows se inicie este servicio en segundo plano y no pida el usuario y contraseña.
    Muchas gracias.

  2. Hola

    gracias por la explicación, a mi no me sale el tunel… cuando le doy en la primera parte a salvar me salta un ruidito como que no me salva nada y cuando voy a tunel y le doy a salvar me dice que necesito especificar una dirección de host que ya he especificado se supone, pero no me funciona 🙁 ayuda plis

  3. hola amigo sabes yo trabajo en una onstitucion la cual el sistema es el SGH – putty y su cuello de botella es la seguridad de la data yo como haría para dar una solución a eso y que base de datos utilizar para esta solución espeortu respuesta gracias

Leave a Reply

Your email address will not be published. Required fields are marked *