【发布时间】:2019-07-15 11:26:16
【问题描述】:
今天我在命令行中使用 ssh 从远程服务器转发端口,使用中间服务器到我的本地机器。
这是我在 shell 中使用的命令:
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 包,但它只能帮助我进行一个端口转发而不是双重。
【问题讨论】:
标签: python ssh paramiko ssh-tunnel