Сегодня я использую ssh в командной строке для переадресации портов с удаленного сервера, используя промежуточный сервер на мою локальную машину.
Это команда, которую я использую в оболочке:
ssh user@remote_server -L 2443:localhost:433
Этот сеанс ssh использует файл конфигурации ssh для создания многопользовательского прыжка:
Host intermediate_server
IdentityFile "google_compute_engine"
Host remote_server
ProxyCommand ssh user@intermediate_server -W %h:%p
Команда ssh требует ввода пароля как для промежуточного сервера (с использованием ключа вычислительного механизма), так и для удаленного сервера (разные пароли) После ввода паролей этот код работает:
import requests
import pandas as pd
from requests.auth import HTTPBasicAuth
url = 'https://localhost:2443/my_site'
my_ds = requests.get(url, auth=HTTPBasicAuth('user', 'password'), verify=False)
print pd.read_json(my_ds.content)
однако, я мог заставить его работать только с помощью ssh туннеля вручную в командной строке.
Как мне инициироватьдвойной туннель с ключом, именем пользователя и паролем в python?Я попытался использовать пакет sshtunnel, но он помогает мне только с одной переадресацией портов, а не с двойной.
Спасибо.