在Python Paramiko中捕获AuthenticationException

时间:2018-09-24 02:09:13

标签: python ssh exception-handling try-catch paramiko

import paramiko

host='x.x.x.x'
port=22
username='root'
password='password'

cmd='dmidecode > a' 

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host,port,username,password)
try:
    stdin,stdout,stderr=ssh.exec_command(cmd)
    outlines=stdout.readlines()
    resp=''.join(outlines)
    print(resp)
except paramiko.AuthenticationException as error:
    print "ERROR"

我无法抓住AuthenticationException。 有人可以建议我采取其他任何方式不破坏脚本,而只显示错误吗?

1 个答案:

答案 0 :(得分:1)

AuthenticationException发生在SSHClient.connect

  

提升 AuthenticationException –如果身份验证失败

您的SSHClient.connect通话不在您的try区块中。

这应该有效:

try:
    ssh.connect(host,port,username,password)
    stdin,stdout,stderr=ssh.exec_command(cmd)
    outlines=stdout.readlines()
    resp=''.join(outlines)
    print(resp)
except paramiko.AuthenticationException as error:
    print "ERROR"