ssh 密码错误时 pxssh 中断

pxssh Breaks When ssh Password Is Incorrect

我正在尝试使用 pxssh lib

连接到 python 中的 ssh 服务器
#!/usr/bin/python

import pxssh

attempt = pxssh.pxssh()

if not attempt.login(IP, USERNAME, PASSWORD):

    print("SSH LOGIN FAILED USING USERNAME : " + USERNAME + " AND PASSWORD : " + PASSWORD)

else:

    print("LOGIN WAS SUCCESSFUL USING USERNAME : " + USERNAME + " AND PASSWORD : " + PASSWORD)

    attempt.sendline("pwd")

    attempt.prompt()

    print attempt.before

break

当密码正确并登录服务器并执行时,它工作正常

pwd

但是当密码不正确或由于任何原因登录失败时,程序会中断,我预计会这样:

print("SSH LOGIN FAILED USING USERNAME : " + USERNAME + " AND PASSWORD : " + PASSWORD)

但是我得到了这个错误:

  File "./ssh.py", line 19, in <module>
    if not attempt.login(IP, USERNAME, PASSWORD):
  File "/usr/lib/python2.7/dist-packages/pexpect/pxssh.py", line 292, in login
    raise ExceptionPxssh ('password refused')
pexpect.pxssh.ExceptionPxssh: password refused

如果它在密码不正确时引发异常,那么您必须捕获异常而不是依赖 return 值。

Return值和异常是处理潜在错误条件的两种完全不同的范例。

关于如何捕获异常,请参阅 https://docs.python.org/3.5/tutorial/errors.html 规范指南。