Добрый день!
Помогите разобраться как на python выполнить port forwarding через несколько хостов?
Схема:
[localhost]-[hostA]-[hostB]..[hostN]-[dest_host]
CLI like:
ssh -t -gL 6000:localhost:6000 hostA ssh -t -gL 6000:localhost:6000 hostB ssh -t -gL 6000:dest_host:6000 hostN
Используя sshtunnel получается перейти на hostA , как открыть следующий туннель из этого туннеля?
Ниже тестовый код, переход на 1 хост, как перейти на следующий ?
from sshtunnel import SSHTunnelForwarder
import requests
with SSHTunnelForwarder(
('192.168.1.3', 22),
ssh_password='password',
ssh_username='username',
local_bind_address=('127.0.0.1', 6000),
remote_bind_address=('dest_host', 6000) # or localhost если сервис тут же
) as server:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'}
r = requests.get('http://127.0.0.1:6000', headers=headers).content
print(r)
Не нашел рабочих примеров для sshtunnel и paramiko, в основном требуется туннель на удаленный хост и далее коннект к БД либо на localhost, либо на внешний адрес.