Поймать исключение AuthenticationException в Python Paramiko

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. Может ли кто-нибудь предложить мне любой другой способ не нарушать сценарий и отображать только ошибку?

  • 0
    Сообщение об ошибке отслеживания может быть полезным. Кроме того, я бы предложил поместить просто stdin,stdout,stderr=ssh.exec_command(cmd) в блок try, потому что это исключение не произойдет с другими строками кода.
Теги:
exception-handling
ssh
try-catch
paramiko

1 ответ

0

AuthenticationException SSHClient.connect происходит в 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"
  • 0
    Помог ли мой ответ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню