Gerenciador de túneis SSH via linha de comando, escrito em Go, que permite definir, abrir e fechar encaminhamentos de porta usando uma configuração TOML.
pahaz/sshtunnel
Biblioteca Python e CLI para criar túneis SSH que encaminham portas locais para serviços em hosts remotos ou privados via paramiko.
- Estrelas
- 1,305
- Forks
- 200
- Issues abertas
- 71
- Último commit
- anteontem
O que é?
sshtunnel permite que código Python e a linha de comando configurem o encaminhamento de portas SSH. É útil quando um serviço, como uma aplicação web ou um banco de dados, só pode ser acessado por uma porta SSH, ou quando um servidor privado fica atrás de um gateway que expõe apenas SSH.
O principal ponto de entrada é SSHTunnelForwarder, que pode ser usado com start()/stop() ou como gerenciador de contexto via open_tunnel. Depois de iniciado, o túnel disponibiliza uma local_bind_port à qual a aplicação se conecta. A autenticação aceita senhas, arquivos de chave privada com frases-senha opcionais e chaves de um agente SSH ou de ~/.ssh/config. Túneis com vários saltos podem ser encadeados direcionando um túnel à porta local de outro.
O projeto também inclui uma CLI sshtunnel, que recebe credenciais SSH, endereços de bind remotos e endereços de bind locais como argumentos. É feito inteiramente em Python e funciona tanto no Windows quanto em sistemas semelhantes ao Unix.
Recursos principais
- 01Encaminha portas locais para serviços remotos acessíveis somente por SSH.
- 02Inicia e encerra túneis por código ou com uma instrução with.
- 03Aceita autenticação por senha, chave privada e agente SSH.
- 04Encadeia vários túneis para acessar hosts atrás de um gateway.
- 05Oferece uma interface de linha de comando para encaminhar portas rapidamente.
- 06Lê hosts e configurações de ~/.ssh/config.
Casos de uso
- Conectar-se a um banco de dados ou serviço web em um servidor cuja única porta aberta é a SSH.
- Acessar um host privado por meio de um bastion ou servidor de salto em scripts de teste.
- Encaminhar, a partir de um script, a porta de um banco de dados local de desenvolvimento, como uma VM do Vagrant.
- Automatizar a configuração de túneis em pipelines de CI ou de dados que precisam acessar recursos remotos.
Início rápido
- 1
Instale o pacote pelo PyPI
pip install sshtunnel - 2
Abra um túnel pelo Python usando SSHTunnelForwarder e leia server.local_bind_port
Em coleções
Tópicos
Perguntas frequentes
- O que é sshtunnel?
- Biblioteca Python e CLI para criar túneis SSH que encaminham portas locais para serviços em hosts remotos ou privados via paramiko. sshtunnel permite que código Python e a linha de comando configurem o encaminhamento de portas SSH. É útil quando um serviço, como uma aplicação web ou um banco de dados, só pode ser acessado por uma porta SSH, ou quando um servidor privado fica atrás de um gateway que expõe apenas SSH.
- sshtunnel é gratuito? Qual é a licença?
- sshtunnel é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- sshtunnel ainda é mantido?
- Manutenção ativa. O último commit de sshtunnel foi em 6 de nov. de 2026.
- Para que posso usar sshtunnel?
- Conectar-se a um banco de dados ou serviço web em um servidor cuja única porta aberta é a SSH. Acessar um host privado por meio de um bastion ou servidor de salto em scripts de teste. Encaminhar, a partir de um script, a porta de um banco de dados local de desenvolvimento, como uma VM do Vagrant. Automatizar a configuração de túneis em pipelines de CI ou de dados que precisam acessar recursos remotos.
- Como instalar sshtunnel?
- Instale o pacote pelo PyPI: pip install sshtunnel Abra um túnel pelo Python usando SSHTunnelForwarder e leia server.local_bind_port
- Onde consigo sshtunnel?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pahaz/sshtunnel
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca Python que simplifica conexões SSH via CLI com dispositivos de rede de vários fabricantes, para enviar comandos show e alterações de configuração.
Uma CLI no estilo netcat e uma biblioteca Go que conectam duas máquinas pela camada de dados WireGuard do Tailscale, sem exigir conta ou plano de controle do Tailscale.
Uma TUI de terminal para navegar, conectar-se e gerenciar hosts SSH definidos no arquivo ~/.ssh/config.
Uma CLI minimalista em Rust que expõe uma porta TCP local por meio de um servidor remoto, permitindo acessar serviços do localhost pela internet pública.
Um ambiente de trabalho desktop nativo em Rust para bancos de dados, SSH, SFTP, terminais, desktop remoto, monitoramento, notas Markdown e agentes de IA.