Настройка туннеля SSH в существующем соединении из сценария
Я хочу создать туннель SSH в существующем соединении. Сложная часть делает это из сценария (пользовательская оболочка, которую я должен разрешать пользователям, только некоторые конкретные вещи, такие как настройка этого туннеля).
Обычно вы можете делать:
- Поставка дополнительных параметров ssh в файле конфигурации
- ssh не возвращается при выполнении удаленного процесса в bg
- Мне нужно RDP на сервер через обратный туннель
- Появляется в одной сети
- Понимание и просмотр, как порты выделяются туннелями ssh?
<enter> ~C ssh> -L 8080:localhost:80
Но мне нужно иметь возможность сделать это из запущенного скрипта python. Я пытался:
print("\n~C -L 8080:localhost:80")
но, к сожалению, это была слишком простая мысль.
Итак, как мне настроить туннель из сценария Python?
(как побочный вопрос, мне также необходимо предотвратить ssh -N -L x:host:y host.example.com
, но все же разрешить настройку портов для моей настраиваемой оболочки).
One Solution collect form web for “Настройка туннеля SSH в существующем соединении из сценария”
Попробуйте использовать sshtunnel
lib.
Пример:
from sshtunnel import SSHTunnelForwarder from time import sleep with SSHTunnelForwarder( ('localhost', 2222), ssh_username="vagrant", ssh_password="vagrant", remote_bind_address=('127.0.0.1', 3306)) as server: print(server.local_bind_port) while True: # press Ctrl-C for stopping sleep(1) print('FINISH!')
или CLI:
python -m sshtunnel -U vagrant -P vagrant -L :3306 -R 127.0.0.1:3306 -p 2222 localhost