¿Cómo abrir una base de datos en Putty?

Conexión Segura a Bases de Datos con PuTTY

Valoración: 4.09 (6230 votos)

En el mundo del desarrollo y la administración de sistemas, acceder a bases de datos remotas es una tarea cotidiana. Sin embargo, realizar estas conexiones de forma insegura, especialmente a través del puerto estándar 3306 para MySQL, representa un riesgo significativo. Este puerto, por defecto, no cifra los datos que viajan entre tu máquina y el servidor, dejando información sensible expuesta.

Afortunadamente, existe una solución robusta y ampliamente utilizada para asegurar estas conexiones: los túneles SSH. Utilizando una herramienta como PuTTY en sistemas Windows, puedes crear un canal cifrado a través de tu conexión SSH habitual y dirigir el tráfico de la base de datos a través de él. Esto significa que, aunque tu cliente de base de datos (como MySQL Workbench o DBeaver) se conecte a una dirección local, PuTTY se encargará de enviar esos datos de forma segura al servidor remoto. Este artículo te guiará paso a paso para configurar un túnel SSH con PuTTY y conectar tu cliente de base de datos de manera segura.

¿Cómo puedo acceder a un servidor usando PuTTY?
¿CÓMO PUEDO ACCEDER A MI CUENTA VIA SSH CON PUTTY?1Instala PuTTY y ejecútalo. ...2Especifica la dirección IP de tu sitio web y haz clic en 'open' para iniciar la conexión. ...3Especifica tu raíz (si tienes acceso raíz al servidor) o tu nombre de usuario.4Especifica tu contraseña.

¿Qué es un Túnel SSH y Por Qué Usarlo?

SSH, o Secure SHell, es un protocolo de red que permite establecer conexiones seguras entre dos computadoras. Es comúnmente utilizado para acceder de forma remota a servidores a través de una interfaz de línea de comandos. Pero la utilidad de SSH va más allá de las sesiones de terminal; también puede usarse para crear túneles cifrados.

Imagina un túnel SSH como una tubería segura y privada que conectas entre tu computadora local y un servidor remoto. Cualquier dato que envíes a un extremo de la tubería sale por el otro, pero todo el tráfico dentro de la tubería está cifrado, haciéndolo ilegible para cualquiera que intente interceptarlo. Para las conexiones a bases de datos, esto es crucial porque protege tus credenciales de acceso (usuario y contraseña de la base de datos) y los datos que consultas o modificas.

Al configurar un túnel SSH para tu base de datos, básicamente le dices a PuTTY que escuche en un puerto específico de tu máquina local (por ejemplo, el puerto 3306 o 3307). Cuando tu cliente de base de datos intenta conectarse a 'localhost' o '127.0.0.1' en ese puerto local, PuTTY intercepta la conexión, la cifra y la reenvía a través de la conexión SSH al servidor remoto. En el servidor, PuTTY (o el demonio SSH del servidor) recibe el tráfico cifrado, lo descifra y lo dirige al puerto de la base de datos en el servidor (generalmente 3306 para MySQL).

Prerrequisitos para Conectar con PuTTY

Antes de empezar, necesitarás tener algunas cosas listas:

  • PuTTY instalado: Si usas Windows, descarga e instala la última versión de PuTTY desde su sitio oficial (putty.org).
  • Un cliente de base de datos: Necesitas una aplicación en tu computadora para conectarte a la base de datos, como MySQL Workbench, DBeaver, SQL Developer, pgAdmin, etc.
  • Credenciales SSH: Necesitarás la dirección (IP o nombre de host) del servidor remoto, tu nombre de usuario SSH y tu contraseña SSH (o clave SSH si usas autenticación por clave).
  • Credenciales de la base de datos: Necesitarás el nombre de usuario y la contraseña para acceder a la base de datos en el servidor remoto.
  • Puerto de la base de datos remota: El puerto en el que el servidor de base de datos está escuchando remotamente (por defecto es 3306 para MySQL).
  • Puerto SSH remoto: El puerto en el que el servidor SSH está escuchando remotamente (por defecto es 22, pero algunos proveedores de hosting lo cambian por seguridad, por ejemplo, a 722).

Configurando el Túnel SSH en PuTTY

Aquí es donde configuramos la "tubería" segura. Sigue estos pasos:

1. Abre PuTTY: Ejecuta la aplicación PuTTY que instalaste.

¿Cuáles son los comandos básicos de PuTTY?
COMANDOS BÁSICOS DE SSHIs: comando utilizado para listar todos los archivos y directorios. ...cd: el comando cd es adecuado para atravesar directorios. ...mkdir: aquí, el comando está orientado a crear un nuevo directorio. ...touch: este comando tiene como objetivo crear un nuevo archivo con la extensión elegida.

2. Configura la sesión básica:
- En la categoría 'Session' (Sesión), en el campo 'Host Name (or IP address)' (Nombre de Host o Dirección IP), ingresa la dirección o IP de tu servidor remoto.
- En el campo 'Port' (Puerto), ingresa el puerto SSH remoto de tu servidor (por defecto 22, pero verifica con tu proveedor si es diferente, como 722).
- Asegúrate de que el 'Connection type' (Tipo de conexión) esté establecido en SSH.

3. Navega a la configuración del túnel:
- En el menú de categorías de la izquierda, expande 'Connection' (Conexión) y luego 'SSH'.
- Selecciona la subcategoría 'Tunnels' (Túneles).

4. Configura el túnel local (Local Port Forwarding):
- Esta sección es crucial para crear el túnel.
- En el campo 'Source port' (Puerto de origen), ingresa un número de puerto en tu máquina local donde PuTTY escuchará. Puedes usar el puerto estándar de la base de datos (ej. 3306 para MySQL), *siempre y cuando no tengas ya un servidor de base de datos local corriendo en ese puerto*. Si tienes un servidor local o quieres evitar conflictos, elige otro puerto libre en tu máquina, como 3307, 3308, 9999, etc.
- En el campo 'Destination' (Destino), debes especificar la dirección y el puerto del servidor de base de datos *visto desde el servidor remoto*. Generalmente, si el servidor de base de datos se ejecuta en el mismo servidor que SSH, la dirección será `localhost` o `127.0.0.1`. El puerto será el de la base de datos remota (ej. 3306 para MySQL). La sintaxis es `direccion_remota:puerto_remoto`. Por ejemplo, `localhost:3306` o `127.0.0.1:3306`.
- Asegúrate de que la opción 'Local' (Local) esté seleccionada (es la predeterminada para el Puerto de origen).
- Haz clic en el botón 'Add' (Añadir). Deberías ver la configuración de tu túnel aparecer en la lista de 'Forwarded ports' (Puertos reenviados).

5. Guarda la configuración (Opcional pero recomendado):
- Vuelve a la categoría 'Session' (Sesión).
- En el campo 'Saved Sessions' (Sesiones guardadas), ingresa un nombre descriptivo para esta conexión (ej. 'MiServidor_DB_Tunnel').
- Haz clic en el botón 'Save' (Guardar). Esto te permitirá abrir esta configuración rápidamente en el futuro.

6. Establece la conexión SSH:
- Asegúrate de que la sesión guardada o la configuración actual sea correcta.
- Haz clic en el botón 'Open' (Abrir).
- Si es la primera vez que te conectas a este servidor, PuTTY te mostrará una advertencia sobre la clave del host. Verifica que la huella digital coincida (si es posible) y haz clic en 'Accept' (Aceptar) para confiar en el servidor.
- Te pedirá tu nombre de usuario SSH ('login as:'). Ingrésalo y presiona Enter.
- Luego te pedirá tu contraseña SSH ('password:'). Ingrésala y presiona Enter. (Nota: la contraseña no se mostrará mientras escribes, ni siquiera puntos o asteriscos).

¿Cómo ejecutar SQL en Putty?
Copie y pegue el código SQL directamente en la sesión de Putty. Guarde y salga presionando + x, luego y Enter. Para salir sin guardar, use + x, luego y Enter. Para ejecutar su programa SQL, escriba: SQL> @yourfile .

Si las credenciales SSH son correctas, se abrirá una ventana de terminal SSH. Esta ventana debe permanecer abierta y activa mientras necesites usar el túnel de base de datos.

Conectando tu Cliente de Base de Datos a Través del Túnel

Ahora que el túnel SSH está activo gracias a PuTTY, tu cliente de base de datos puede conectarse de forma segura. El truco está en que tu cliente no se conectará directamente a la IP pública y puerto 3306 del servidor remoto. En cambio, se conectará a tu propia máquina local, y PuTTY se encargará del resto.

Configura tu cliente de base de datos de la siguiente manera (los nombres exactos de los campos pueden variar según el cliente):

  • Connection Method/Type: Selecciona una conexión estándar TCP/IP (no SSH/SSL directo, ya que el cifrado lo maneja PuTTY).
  • Hostname / IP Address: Ingresa `127.0.0.1` o `localhost`. ¡Esto es fundamental! Tu cliente se conecta al extremo local del túnel.
  • Port: Ingresa el 'Source port' (Puerto de origen) que configuraste en PuTTY (ej. 3306 o 3307). Este es el puerto en tu máquina local donde PuTTY está escuchando.
  • Username: Ingresa el nombre de usuario de la base de datos remota (no tu usuario SSH).
  • Password: Ingresa la contraseña de la base de datos remota (no tu contraseña SSH).
  • Database / Schema (Opcional): Si lo deseas, puedes especificar la base de datos a la que quieres conectarte directamente.

Una vez configurado, intenta probar la conexión en tu cliente de base de datos. Si PuTTY está abierto y conectado al servidor SSH, y la configuración del túnel y del cliente es correcta, la conexión debería establecerse exitosamente y de forma segura. Todo el tráfico entre tu cliente y la base de datos remota ahora viaja cifrado a través del túnel SSH.

Consideraciones Importantes y Solución de Problemas

  • PuTTY debe estar abierto: El túnel solo existe mientras la ventana de PuTTY con la sesión SSH activa permanezca abierta. Si cierras PuTTY, la conexión de tu cliente de base de datos fallará.
  • Conflicto de Puertos Locales: El error más común es intentar usar un 'Source port' en PuTTY (ej. 3306) que ya está siendo utilizado por otro servicio en tu máquina local (como un servidor MySQL que tengas instalado). Si esto ocurre, cambia el 'Source port' en la configuración del túnel de PuTTY a otro número libre (ej. 3307) y asegúrate de configurar tu cliente de base de datos para usar ese nuevo puerto local.
  • Credenciales SSH vs. Base de Datos: Recuerda que usas credenciales SSH para abrir el túnel con PuTTY, y credenciales de base de datos para que tu cliente se conecte a través del túnel. Son conjuntos de credenciales distintos.
  • Firewalls: Asegúrate de que tu firewall local no esté bloqueando la conexión saliente de PuTTY en el puerto SSH remoto, ni la conexión de tu cliente de base de datos a `127.0.0.1` en el 'Source port' local. También, el firewall del servidor remoto debe permitir conexiones SSH (en su puerto configurado) y, crucialmente, debe permitir que el servidor SSH (que generalmente corre en `localhost` en el servidor) se conecte al puerto de la base de datos remota (ej. 3306).
  • Dirección de Destino del Túnel: En la mayoría de los casos, si el servidor de base de datos está en la misma máquina que el servidor SSH, 'localhost:3306' o '127.0.0.1:3306' es correcto para el campo 'Destination'. Si la base de datos está en otro servidor accesible *desde* el servidor SSH, necesitarías usar la IP interna o nombre de host de esa otra máquina y su puerto.

Ventajas de Usar un Túnel SSH

El uso de túneles SSH para acceder a tus bases de datos ofrece múltiples beneficios:

  • Seguridad Mejorada: El principal beneficio es que todo el tráfico de la base de datos viaja cifrado, protegiéndolo de escuchas y ataques Man-in-the-Middle.
  • Evita Exponer Puertos de Base de Datos: No necesitas abrir el puerto estándar de la base de datos (ej. 3306) directamente a internet, lo cual reduce drásticamente la superficie de ataque de tu servidor. La única puerta abierta es el puerto SSH, que ya es inherentemente más seguro y auditable.
  • Flexibilidad: Puedes acceder a bases de datos que solo están configuradas para escuchar conexiones locales en el servidor, siempre y cuando puedas acceder al servidor vía SSH.
  • Compatibilidad: Funciona con la mayoría de los clientes de base de datos, ya que estos simplemente "ven" el servidor de base de datos como si estuviera corriendo localmente.

Preguntas Frecuentes

¿Necesito tener PuTTY abierto todo el tiempo para conectarme a la base de datos?
Sí, la ventana de PuTTY que establece la conexión SSH y el túnel debe permanecer abierta y activa mientras tu cliente de base de datos esté conectado a través del túnel.

¿Puedo usar cualquier número para el 'Source port' en PuTTY?
Sí, puedes usar cualquier puerto libre en tu máquina local que no esté siendo utilizado por otra aplicación. Los puertos por encima de 1024 suelen ser seguros para elegir, pero puedes usar 3306 si estás seguro de que no tienes un servidor de base de datos local usándolo.

¿Cuál es el número de puerto de la base de datos MySQL?
El puerto 3306 es el puerto predeterminado para el protocolo MySQL clásico ( puerto ), que utilizan el cliente MySQL, los conectores MySQL y utilidades como mysqldump y mysqlpump .

¿Cuál es la diferencia entre el usuario/contraseña SSH y el usuario/contraseña de la base de datos?
El usuario y contraseña SSH se utilizan para autenticarte en el servidor a través del protocolo SSH y establecer el túnel con PuTTY. El usuario y contraseña de la base de datos se utilizan para autenticarte *con el servidor de base de datos* una vez que tu conexión llega a través del túnel. Son credenciales para servicios diferentes en el servidor remoto.

¿Puedo usar este método para bases de datos distintas a MySQL?
Absolutamente. La técnica del túnel SSH es genérica y funciona para cualquier tipo de conexión TCP/IP. Solo necesitas saber el puerto remoto de la base de datos que quieres tunelizar (ej. 5432 para PostgreSQL, 1521 para Oracle, etc.) y configurar el 'Destination' y el 'Source port' localmente según corresponda.

¿Es esto lo mismo que ejecutar comandos SQL directamente en la terminal de PuTTY?
No, es diferente. Ejecutar comandos SQL directamente en la terminal de PuTTY implicaría primero conectarte al servidor vía SSH, y luego, una vez dentro del servidor, usar una herramienta de línea de comandos de base de datos instalada en el servidor (como `mysql` o `sqlplus`) para interactuar con la base de datos. El método del túnel SSH te permite usar tu *cliente de base de datos favorito* instalado en tu *computadora local*, haciendo que ese cliente se conecte de forma segura al servidor remoto a través del túnel.

Conclusión

Conectar a bases de datos remotas de forma segura es un aspecto fundamental de la seguridad informática. Utilizar túneles SSH con herramientas como PuTTY es una técnica poderosa y esencial para proteger tus datos y credenciales al acceder a servidores de bases de datos. Siguiendo los pasos descritos, puedes configurar fácilmente una conexión cifrada, evitando exponer puertos de base de datos a internet y garantizando que tu información viaje de forma segura. Adopta esta práctica y fortalece la seguridad de tus operaciones diarias con bases de datos.

Si quieres conocer otros artículos parecidos a Conexión Segura a Bases de Datos con PuTTY puedes visitar la categoría Bases de datos.

Ivan

Soy un entusiasta de la tecnología con especialización en bases de datos, particularmente en MySQL. A través de mis tutoriales detallados, busco desmitificar los conceptos complejos y proporcionar soluciones prácticas a los desafíos cotidianos relacionados con la gestión de datos

Aprende mas sobre MySQL

Subir