在 Python Paramiko 中捕获 AuthenticationException

问题描述 投票:0回答:1
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
。 谁能建议我任何其他方法来不破坏脚本并只显示错误?

python ssh exception try-catch paramiko
1个回答
2
投票

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"
© www.soinside.com 2019 - 2024. All rights reserved.