使用Python的SSH隧道

问题描述 投票:0回答:1

我的目标是按以下方式更新Host3:[Internet] [Host1:HasInternet] [Host2:VPN锁定] [Host3:No-Internet]

当前,我必须运行一系列SSH命令来首先建立从Host1到Host2到Host3到Host3的反向SSH连接,然后建立动态隧道,然后按如下所示更新我的Host3(请参见表的屏幕截图:

enter image description here

我想用python自动化这一系列的SSH隧道。我研究了sshtunnels库paramiko,但没有看到如何使用它们达到我的目标。

非常感谢您的帮助。

python ssh ssh-tunnel
1个回答
0
投票

而不是手动管理隧道,让ssh使用ProxyJump选项为您完成,您可以在命令行上使用-J进行访问。

ssh -J <username>@Locked-By-VPN <username>@Has-No-Internet

首先通过连接到Has-No-Internet,从而建立与Locked-By-VPN的连接。

您可以通过在~/.ssh/config文件中添加以下内容来缩写:

Host Host3
   Hostname
   User <username>
   ProxyJump <username>@Locked-By-VPN

然后您可以简单地运行ssh Host3; ssh将从配置文件中获取真实主机名,必要的用户名和中间主机。

还有一个ProxyCommand选项,您可以用来提供对连接过程的更多控制。有关这两个选项的更多详细信息,请参见man ssh_config

© www.soinside.com 2019 - 2024. All rights reserved.