通过pxssh运行sudo命令

时间:2015-03-24 16:05:40

标签: python pexpect

我正在使用pxssh模块通过ssh连接到远程服务器。我使用以下函数发送命令

def send_command(session , cmd):
    session.sendline(cmd)
    session.prompt()
    return session.before

这适用于lspwd

等命令

问题:

当我输入请求身份验证或用户输入的命令(如sudovim)时,程序会挂起并且不返回任何内容。我们如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您不能将send_command()用于期望用户互动的命令,例如提供密码。

session.sendline(cmd)  # program started 
# put here user interaction 
# ... expect('(?i)password:'); sendline(passwd) ...         
session.prompt()       # program ended (the shell prompt is shown)