Менеджер SSH-туннелей с CLI на Go: настраивайте, открывайте и закрывайте пробросы портов через TOML-конфиг.
pahaz/sshtunnel
Библиотека Python и CLI для SSH-туннелей, перенаправляющих локальные порты к сервисам на удалённых или закрытых хостах с помощью paramiko.
- Звёзды
- 1,305
- Форки
- 200
- Открытые issues
- 71
- Последний коммит
- вчера
Что это?
sshtunnel позволяет настраивать переадресацию портов SSH из кода Python и командной строки. Это пригодится, если сервис — например, веб-приложение или база данных — доступен только через SSH-порт или если закрытый сервер находится за шлюзом, на котором открыт только SSH.
Основная точка входа — SSHTunnelForwarder. Её можно использовать с методами start()/stop() или как менеджер контекста через open_tunnel. После запуска туннель предоставляет порт local_bind_port, к которому подключается приложение. Поддерживается аутентификация по паролю, файлу приватного ключа с необязательной парольной фразой, а также с помощью SSH-агента или ~/.ssh/config. Для многоступенчатых туннелей можно направить один туннель на локальный порт другого.
В проект также входит CLI sshtunnel, которому в качестве аргументов передаются SSH-учётные данные, адреса удалённой и локальной привязки. Библиотека написана только на Python и работает как в Windows, так и в Unix-подобных системах.
Ключевые возможности
- 01Перенаправление локальных портов к удалённым сервисам, доступным только через SSH.
- 02Программный запуск и остановка туннелей или управление ими с помощью with.
- 03Поддержка аутентификации по паролю, приватному ключу и через SSH-агент.
- 04Объединение нескольких туннелей для доступа к хостам за шлюзом.
- 05CLI для быстрого перенаправления портов.
- 06Чтение хостов и настроек из ~/.ssh/config.
Сценарии использования
- Подключение к базе данных или веб-сервису на сервере, у которого открыт только порт SSH.
- Доступ к закрытому хосту через bastion или jump server из тестовых скриптов.
- Перенаправление порта локальной базы для разработки, например в виртуальной машине Vagrant, с помощью скрипта.
- Автоматизация настройки туннелей в CI или конвейерах обработки данных, которым нужны удалённые ресурсы.
Быстрый старт
- 1
Установите пакет из PyPI
pip install sshtunnel - 2
Откройте туннель из Python с помощью SSHTunnelForwarder и прочитайте server.local_bind_port
В подборках
Темы
Частые вопросы
- Что такое sshtunnel?
- Библиотека Python и CLI для SSH-туннелей, перенаправляющих локальные порты к сервисам на удалённых или закрытых хостах с помощью paramiko. sshtunnel позволяет настраивать переадресацию портов SSH из кода Python и командной строки. Это пригодится, если сервис — например, веб-приложение или база данных — доступен только через SSH-порт или если закрытый сервер находится за шлюзом, на котором открыт только SSH.
- sshtunnel можно использовать бесплатно? Какая у него лицензия?
- sshtunnel распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- sshtunnel всё ещё поддерживается?
- Активно поддерживается. Последний коммит в sshtunnel — 6 нояб. 2026 г..
- Для чего можно использовать sshtunnel?
- Подключение к базе данных или веб-сервису на сервере, у которого открыт только порт SSH. Доступ к закрытому хосту через bastion или jump server из тестовых скриптов. Перенаправление порта локальной базы для разработки, например в виртуальной машине Vagrant, с помощью скрипта. Автоматизация настройки туннелей в CI или конвейерах обработки данных, которым нужны удалённые ресурсы.
- Как установить sshtunnel?
- Установите пакет из PyPI: pip install sshtunnel Откройте туннель из Python с помощью SSHTunnelForwarder и прочитайте server.local_bind_port
- Где скачать sshtunnel?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pahaz/sshtunnel
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека Python для упрощения SSH-подключений к CLI сетевых устройств разных производителей, выполнения show-команд и внесения изменений в конфигурацию.
CLI в стиле netcat и библиотека Go для соединения двух машин через плоскость передачи данных WireGuard в Tailscale — без аккаунта Tailscale и управляющей плоскости.
TUI в терминале для просмотра SSH-хостов из ~/.ssh/config, подключения к ним и управления ими.
Минималистичная CLI-утилита на Rust, которая открывает локальный TCP-порт на удалённом сервере, делая сервисы localhost доступными из интернета.
Нативное Rust-приложение для рабочего стола: базы данных, SSH, SFTP, терминалы, удалённый рабочий стол, мониторинг, заметки Markdown и AI-агенты.