Двойной SSH-туннель внутри питона - PullRequest
0 голосов
/ 21 февраля 2019

Сегодня я использую 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, но он помогает мне только с одной переадресацией портов, а не с двойной.

Спасибо.

...