运行 通过 pxssh 执行 sudo 命令

Running sudo commands through pxssh

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

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

这非常适用于 lspwd 等命令

问题:

当我输入请求身份验证或用户输入(如 sudovim )的命令时,程序挂起并且 returns 什么也没有。我们如何解决这个问题?

您不能将 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)