Поймать исключение AuthenticationException в Python Paramiko - PullRequest
0 голосов
/ 24 сентября 2018
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 голосов
/ 24 сентября 2018

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"
...