Un administrador de túneles SSH para la línea de comandos, escrito en Go, que permite definir, abrir y cerrar redirecciones de puertos desde un archivo TOML.
pahaz/sshtunnel
Biblioteca de Python y CLI para crear túneles SSH que reenvían puertos locales a servicios en hosts remotos o privados mediante paramiko.
- Estrellas
- 1,305
- Forks
- 200
- Issues abiertos
- 71
- Último commit
- anteayer
¿Qué es?
sshtunnel permite configurar el reenvío de puertos SSH desde código Python y la línea de comandos. Es útil cuando solo se puede acceder a un servicio, como una aplicación web o una base de datos, a través de un puerto SSH, o cuando un servidor privado está detrás de una puerta de enlace que solo expone SSH.
El punto de entrada principal es SSHTunnelForwarder, que puede usarse con start()/stop() o como administrador de contexto mediante open_tunnel. Una vez iniciado, el túnel expone un local_bind_port al que se conecta la aplicación. La autenticación admite contraseñas, archivos de clave privada con frases de contraseña opcionales y claves de un agente SSH o de ~/.ssh/config. Se pueden encadenar túneles de varios saltos apuntando un túnel al puerto local de otro.
El proyecto también incluye una CLI llamada sshtunnel, que recibe como argumentos las credenciales SSH y las direcciones de enlace remotas y locales. Está escrito íntegramente en Python y funciona tanto en Windows como en sistemas tipo Unix.
Funciones clave
- 01Reenviar puertos locales a servicios remotos accesibles solo mediante SSH.
- 02Iniciar y detener túneles mediante código o con una instrucción with.
- 03Admitir autenticación con contraseña, clave privada y agente SSH.
- 04Encadenar varios túneles para acceder a hosts detrás de una puerta de enlace.
- 05Ofrecer una interfaz de línea de comandos para configurar reenvíos rápidamente.
- 06Leer hosts y ajustes de ~/.ssh/config.
Casos de uso
- Conectarse a una base de datos o un servicio web en un servidor cuyo único puerto abierto es SSH.
- Acceder a un host privado a través de un bastión o servidor de salto desde scripts de prueba.
- Reenviar desde un script el puerto de una base de datos local de desarrollo, como una máquina virtual de Vagrant.
- Automatizar la configuración de túneles en CI o en pipelines de datos que necesitan recursos remotos.
Inicio rápido
- 1
Instala el paquete desde PyPI
pip install sshtunnel - 2
Abre un túnel desde Python con SSHTunnelForwarder y lee server.local_bind_port
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es sshtunnel?
- Biblioteca de Python y CLI para crear túneles SSH que reenvían puertos locales a servicios en hosts remotos o privados mediante paramiko. sshtunnel permite configurar el reenvío de puertos SSH desde código Python y la línea de comandos. Es útil cuando solo se puede acceder a un servicio, como una aplicación web o una base de datos, a través de un puerto SSH, o cuando un servidor privado está detrás de una puerta de enlace que solo expone SSH.
- ¿sshtunnel es gratuito? ¿Qué licencia tiene?
- sshtunnel es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿sshtunnel sigue mantenido?
- Mantenimiento activo. El último commit de sshtunnel fue el 6 nov 2026.
- ¿Para qué puedo usar sshtunnel?
- Conectarse a una base de datos o un servicio web en un servidor cuyo único puerto abierto es SSH. Acceder a un host privado a través de un bastión o servidor de salto desde scripts de prueba. Reenviar desde un script el puerto de una base de datos local de desarrollo, como una máquina virtual de Vagrant. Automatizar la configuración de túneles en CI o en pipelines de datos que necesitan recursos remotos.
- ¿Cómo se instala sshtunnel?
- Instala el paquete desde PyPI: pip install sshtunnel Abre un túnel desde Python con SSHTunnelForwarder y lee server.local_bind_port
- ¿Dónde consigo sshtunnel?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pahaz/sshtunnel
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de Python que simplifica las conexiones SSH a las CLI de dispositivos de red de varios fabricantes para enviar comandos show y cambios de configuración.
CLI similar a netcat y biblioteca de Go para conectar dos máquinas mediante el plano de datos WireGuard de Tailscale, sin cuenta ni plano de control de Tailscale.
Una TUI de terminal para explorar, conectarse a y administrar hosts SSH definidos en el archivo ~/.ssh/config.
Una CLI minimalista en Rust que expone un puerto TCP local a través de un servidor remoto para que los servicios de localhost sean accesibles desde Internet.
Un espacio de trabajo de escritorio nativo en Rust para bases de datos, SSH, SFTP, terminales, escritorio remoto, monitoreo, notas Markdown y agentes de IA.