Python中的并行SSH

Python中的并行SSH,python,ssh,parallel-processing,Python,Ssh,Parallel Processing,我想知道在python中处理并行SSH连接的最佳方法是什么。 我需要打开几个SSH连接以保持在后台,并以交互或定时批处理的方式提供命令。 这是否可以通过paramiko库实现?最好不要为每个连接生成不同的SSH进程 谢谢。您只需使用subprocess.Popen就可以了,没有任何问题 但是,您可能只想在远程计算机上安装cronjobs.:-) 阅读paramiko API文档,似乎可以打开一个ssh连接,并根据需要在其上复用任意多个ssh隧道。如果连接已经打开,公共ssh客户端(openssh

我想知道在python中处理并行SSH连接的最佳方法是什么。 我需要打开几个SSH连接以保持在后台,并以交互或定时批处理的方式提供命令。 这是否可以通过paramiko库实现?最好不要为每个连接生成不同的SSH进程


谢谢。

您只需使用subprocess.Popen就可以了,没有任何问题


但是,您可能只想在远程计算机上安装cronjobs.:-)

阅读paramiko API文档,似乎可以打开一个ssh连接,并根据需要在其上复用任意多个ssh隧道。如果连接已经打开,公共ssh客户端(openssh)通常会在后台自动执行类似操作。

查看Twisted中的可用选项可能值得一试。例如,Twisted.Conch页面报告:

与OpenSSH不同,Conch服务器不会为每个传入连接派生一个进程。相反,它使用扭曲电抗器来多路连接


是的,你可以和帕拉米科一起做

如果连接到一台服务器,则可以通过一个连接运行多个通道。如果要连接到多个服务器,可以在单独的线程中启动多个连接。无需管理多个进程,尽管您可以用多处理模块代替线程模块并具有相同的效果


我已经有一段时间没看《扭曲的海螺》了,但它看起来又更新了,这很好。我不能给你一个很好的功能比较两者,但我发现paramiko更容易开始。进入twisted需要付出更多的努力,但如果你正在做其他网络编程,这可能是值得的。

这可能与你的问题无关。但也有一些工具,如pssh、clusterssh等,可以并行生成连接。你可以期望pssh也能控制它们。

我试过clusterssh,但我不喜欢多窗口模型。在一般情况下,当一切正常时,会让人太困惑

我试过pssh,它在引号转义和密码提示方面有一些问题

我用过的最好的方法是:

描述:舞者壳,或分布式壳 使用远程shell在一组计算机上执行指定命令 方法,如rsh或ssh。 . dsh可以使用多种算法并行作业提交,例如 扇出方法或打开尽可能多的连接,或 一次使用连接窗口。 它还支持“交互模式”,用于交互式维护 远程主机。 . 此工具对于管理PC群集和多台主机非常方便。 它在调度和拓扑结构方面非常灵活:如果需要,您可以请求接近调用树的内容。但是默认情况是一个简单的拓扑结构,即一个命令节点到多个叶节点


使用ssh隧道时需要注意的一点是:如果隧道连接到实际使用ssh连接的机器以外的机器,则ssh连接到机器和隧道连接到机器之间的通道将不安全。很明显,唯一安全的部分是客户端和服务器之间的通道。如果恶意用户能够设法在服务器上的环回上获取wireshark,那么服务器上的隧道端点和正在侦听的任何进程的端口之间也不安全。然而,这与我所说的无关,基本上,如果我使用ssh server.example,那么在另一个终端中再次使用ssh server.example。一些客户端(openssh)实际上不会创建新的TCP连接,而只是ssh传输上已经打开的另一个通道。 Description: dancer's shell, or distributed shell Executes specified command on a group of computers using remote shell methods such as rsh or ssh. . dsh can parallelise job submission using several algorithms, such as using fan-out method or opening as much connections as possible, or using a window of connections at one time. It also supports "interactive mode" for interactive maintenance of remote hosts. . This tool is handy for administration of PC clusters, and multiple hosts.