如何在Python Twisted中进行SSH端口转发?

Bry*_*yan 5 python ssh twisted portforwarding

是否有任何启动与远程计算机的SSH会话的示例,其中使用Conch的Twisted中的端口转发选项,以便可以通过隧道管道正常的TCP流量?

场景:

我有一台服务器运行自定义的基于Twisted的Protobuf RPC服务和一台安装了基于Twisted的RPC客户端的机器.服务器也在运行SSH.我不想直接与服务器上的RPC服务通信,而是使用来自RPC客户端的SSH连接到服务器,在服务器上设置端口转发,并使用Protobuf通过SSH隧道与RPC服务进行通信.

我已经能够手动设置端口转发,并通过将RPC客户端指向客户端盒上的本地端口让RPC客户端与RPC服务通信,我只是好奇我如何在客户端内直接执行此操作.

Jea*_*one 4

如果 Twisted 中有改进的文档来使用 Conch 做一些巧妙的事情,那就太棒了(毕竟,还有多少其他可编程 SSH 库?)。在那快乐的一天到来之前,阅读命令行工具的实现conch会很有帮助。

在这里,我们可以看到命令行中的端口转发选项在何处转换为通过 SSH 连接的某些操作:

https://github.com/twisted/twisted/blob/4ffbe9f6851dbe7e9172f55905f264ecf50da3a6/src/twisted/conch/scripts/conch.py​​#L226-L238

我认为您正在询问本地转发规则,因此循环localForwards正在大致执行您想要执行的操作。