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
. Может ли кто-нибудь предложить мне любой другой способ не нарушать сценарий и отображать только ошибку?
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"
stdin,stdout,stderr=ssh.exec_command(cmd)
в блок try, потому что это исключение не произойдет с другими строками кода.