脚本中途遇到“paramiko.ChannelException:Administratively prohibited”

时间:2013-05-22 18:11:34

标签: python ssh paramiko

我正在使用Python将SSH连接到主机,运行bash命令,然后以Pythonic方式将结果解析为多个数据结构以供稍后显示。

我正在使用Paramiko库进行SSH并在远程主机上执行命令,如下所示:

ssh = paramiko.SSHClient()
ssh.exec_command("command goes here")

我正在以这种方式运行许多命令,似乎大多数命令都在工作(我正在循环浏览文件并在远程服务器上构建文件路径以运行命令)。但是,在执行过程中,我遇到了这个错误。

我认为这与我正在制作的ssh.exec_command()电话的数量有关,但我不确定。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

我相信我已经解决了它:因为exec_command()是非阻塞的,我本质上是试图在远程计算机上同时运行大量命令。这违反了政策并被阻止了。

我通过强制我的脚本等到每个命令都通过stdout.readlines()执行来解决这个问题。它现在很好用。

答案 1 :(得分:4)

我有类似的问题,我发现还需要修改SSH服务器配置。

任何有类似问题的人都可以先在sshd配置中找到"#MaxSessions=10"(在我的情况下,就是/etc/sshd/sshd_config)。

MaxSessions=10修改为其他值可能可以解决问题。