Repolode
pahaz

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. 1

    Instala el paquete desde PyPI

    pip install sshtunnel
  2. 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.

DevOps y nube#network-automation#ssh#python
4,3 mil+4 esta semana1,4 milPythonMITActualizado hace 8 días