为什么不能的paramiko运行这个命令? (蟒蛇)(Why can't paramik

2019-09-26 17:31发布

echo Something=Something > file

我可以使用的paramiko的exec_command做catgrepls ,但每当我试图修改它什么都不做的文件。 我已经跑了su在这之前。 该文件保持完全一样,因为它是在运行命令之前。

Answer 1:

这是因为你必须打开每个exec_command调用一个新的渠道。 此失去su命令的认证,因为它被关联到一个特定的信道。

你有几个选项。

  1. 运行与须藤命令,这可能是不可能的paramiko以上
  2. 以root身份登录,这不一定是个好主意
  3. 使用invoke_shell()您的频道,然后通过STD发送命令到壳

选项3允许交互使用ssh与的paramiko,保持状态信息完整。 这就是你需要什么苏命令。 它还允许你创建一个围绕你的shell连接Pexpect的类型包装,看stdout管道的事情完成的指示,并且可以通过标准输入发送额外的命令。 只要留意管道填充和阻塞,直到你读取数据。



文章来源: Why can't paramiko run this command? (Python)