我正在使用Python将SSH连接到主机,运行bash命令,然后以Pythonic方式将结果解析为多个数据结构以供稍后显示。
我正在使用Paramiko库进行SSH并在远程主机上执行命令,如下所示:
ssh = paramiko.SSHClient()
ssh.exec_command("command goes here")
我正在以这种方式运行许多命令,似乎大多数命令都在工作(我正在循环浏览文件并在远程服务器上构建文件路径以运行命令)。但是,在执行过程中,我遇到了这个错误。
我认为这与我正在制作的ssh.exec_command()
电话的数量有关,但我不确定。有什么想法吗?
答案 0 :(得分:6)
我相信我已经解决了它:因为exec_command()
是非阻塞的,我本质上是试图在远程计算机上同时运行大量命令。这违反了政策并被阻止了。
我通过强制我的脚本等到每个命令都通过stdout.readlines()
执行来解决这个问题。它现在很好用。
答案 1 :(得分:4)
我有类似的问题,我发现还需要修改SSH服务器配置。
任何有类似问题的人都可以先在sshd配置中找到"#MaxSessions=10"
(在我的情况下,就是/etc/sshd/sshd_config
)。
将MaxSessions=10
修改为其他值可能可以解决问题。