Python 中的 SSH 动态端口转发('ssh -D')

Posted

技术标签:

【中文标题】Python 中的 SSH 动态端口转发(\'ssh -D\')【英文标题】:SSH Dynamic Port Forwarding ('ssh -D') in PythonPython 中的 SSH 动态端口转发('ssh -D') 【发布时间】:2011-03-09 15:17:09 【问题描述】:

我正在寻找一种在 Python 下实现 SSH 动态端口转发 ('ssh -D') 的方法。问题是它必须在 Windows 下工作,即使用 popen/pexec/etc 运行 SSH。不会工作。有什么想法吗?

干杯,

布鲁诺·内里。

【问题讨论】:

【参考方案1】:

你试过Paramiko吗?

【讨论】:

Paramiko 是否提供动态端口转发?我没有找到任何参考。 Paramiko 不支持这个。但是您应该将您的用例添加到 Github 上请求此功能的问题中:github.com/paramiko/paramiko/issues/955【参考方案2】:

有适用于 Windows 的 ssh 可执行文件,因此您可以使用 subprocess.Popen 方法。这并不完全优雅,纯 Python 方法会更好。

【讨论】:

我不喜欢依赖另一个可执行文件的想法。无论如何,如果有一个 DLL 进行动态端口转发,那么我们正在谈论 :)

以上是关于Python 中的 SSH 动态端口转发('ssh -D')的主要内容,如果未能解决你的问题,请参考以下文章

安全牛学习笔记SSH远程端口转发和动态端口转发以及X协议转发

如何使用 Ruby 进行动态端口转发

SSH端口转发

SSH端口转发

ssh的代理和端口转发机制介绍

Python SSH服务器(twisted.conch)命令过滤和端口转发