设备1通过我的网络连接到设备2。设备2也连接到设备3,设备3没有直接连接到设备1.从设备1,我希望能够将文件发送到设备2或设备3。
目前,我正在使用paramiko建立ssh连接,然后使用sftp将文件从Device 1放到Device 2上。这不是问题。
使用Device 2作为中间人,将文件传输到设备3的最佳方法是什么?我知道我可以复制到设备2,然后以某种方式再次复制到设备3,但这似乎效率低下。我应该如何将设备1链接到设备3,以便我可以简单地使用sftp.put()
?
我无法更改网络配置,因此请不要建议。
答案 0 :(得分:2)
你应该使用SSH隧道, 有不同的选择:
pip install sshtunnel
样品:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
try:
client.connect(server[0], server[1], username=options.user, key_filename=options.keyfile, look_for_keys=options.look_for_keys, password=password)