Los túneles SSH son una de las funcionalidades más versátiles del veterano protocolo SSH y permiten resolver, con comandos nativos y sin herramientas adicionales, escenarios habituales en desarrollo y operaciones: acceder a servicios internos de una VPC privada desde un equipo local mediante un bastión, abrir en el navegador un puerto de una máquina virtual remota de desarrollo, exponer temporalmente un servidor local a Internet o redirigir el puerto de depuración del navegador hacia un agente de programación remoto en sandbox.
El artículo distingue dos modos principales. El reenvío local de puertos (ssh -L [local_addr:]local_port:remote_addr:remote_port [user@]sshd_addr) abre un puerto en la máquina local cuyo tráfico se redirige, a través del servidor SSH, hacia una dirección y puerto de destino, que pueden estar en el propio servidor o en otro equipo alcanzable desde él, como una instancia privada dentro de una VPC. Es la técnica típica para consultar una base de datos remota desde una herramienta gráfica local o para invocar APIs internas a las que solo llega un bastión público.
El reenvío remoto de puertos (ssh -R [remote_addr:]remote_port:local_addr:local_port [user@]gateway_addr) opera en sentido inverso: expone un servicio local a través de un servidor SSH con IP pública, lo que resulta útil para demos rápidas o para dar acceso puntual a un homelab. El texto advierte de un escollo frecuente: por defecto, el puerto remoto solo escucha en localhost del gateway, por lo que se necesita activar GatewayPorts yes en la configuración de sshd para exponerlo en su dirección pública.
La guía incluye dos laboratorios reproducibles en un playground con cuatro hosts (local, remote, private e internal) cableados en tres redes, con comandos curl que muestran el fallo de conexión directa y la solución mediante túneles. También aporta una hoja de referencia visual y trucos prácticos como usar ssh -f -N -L para mantener el reenvío en segundo plano.
