【问题标题】:pexpect - how to pass in password using eventspexpect - 如何使用事件传递密码
【发布时间】:2018-10-23 00:09:44
【问题描述】:

在这个狙击手中,我试图将密码作为事件传递,为什么以下操作不起作用?

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

【问题讨论】:

    标签: python automation automated-tests pexpect


    【解决方案1】:

    根据documentation 为 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}
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2022-01-12
      • 2011-02-23
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多