pexpect如何使用事件传入密码

2024-04-29 11:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个狙击手我试图传递密码作为一个事件,为什么下面的不工作?你知道吗

 password = input("INPUT PASSWORD: ")
 pexpect.run("ssh -lX user@gmail.com 'ls -l'",
 events={'(?i)password':' \n'}, password)

Tags: runcom密码input事件passwordlsssh
1条回答
网友
1楼 · 发布于 2024-04-29 11:32:12

根据documentationfor pexpect提供的示例,您似乎应该将密码作为'(?i)password'值的一部分传递。你知道吗

from pexpect import *
run('scp foo user@example.com:.', events={'(?i)password': mypassword})

在你的情况下,这将转化为这个。你知道吗

pexpect.run(
    "ssh -lX eandersson@my-server.com 'ls -l'",
    events={'(?i)password': '%s\n' % password}
)

使用getpass隐藏密码的更完整示例如下所示。你知道吗

import pexpect
import getpass
password = getpass.getpass('Password: ')
print pexpect.run(
    "ssh -lX eandersson@10.0.1.1 'ls -l'",
    events={'(?i)password': '%s\n' % password}
)

相关问题 更多 >