Netmiko Обработка ошибок входа - PullRequest
0 голосов
/ 22 января 2020

Я был после некоторой помощи. Я пытаюсь написать скрипт для S SH на устройстве, и если аутентификация не удалась, выведите инструкцию «Login Failed». К сожалению, обработка ошибок, похоже, не работает и выдает ошибку, см. След ниже.

Любой совет будет оценен. Я новичок в python.

Большое спасибо Ri c

from netmiko import Netmiko
from getpass import getpass
from netmiko import ssh_exception
from paramiko.ssh_exception import AuthenticationException
from netmiko.ssh_exception import NetmikoAuthenticationException
import sys

Netmiko(
"1.1.1.1",
username="fred",
password=getpass(),
device_type="cisco_ios",
)


try:
   net_connect = ConnectHandler(**Netmiko)
except (AuthenticationException, NetmikoAuthenticationException):
   print("Login failed")
   sys.exit()

print(net_connect.find_prompt())
net_connect.disconnect()```



Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 892, in establish_connection
    self.remote_conn_pre.connect(**ssh_connect_params)
  File "/usr/local/lib/python3.6/site-packages/paramiko/client.py", line 446, in connect
    passphrase,
  File "/usr/local/lib/python3.6/site-packages/paramiko/client.py", line 764, in _auth
    raise saved_exception
  File "/usr/local/lib/python3.6/site-packages/paramiko/client.py", line 751, in _auth
    self._transport.auth_password(username, password)
  File "/usr/local/lib/python3.6/site-packages/paramiko/transport.py", line 1509, in auth_password
    return self.auth_handler.wait_for_response(my_event)
  File "/usr/local/lib/python3.6/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response
    raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "LoginCheck.py", line 13, in <module>
    device_type="cisco_ios",
  File "/usr/local/lib/python3.6/site-packages/netmiko/ssh_dispatcher.py", line 252, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 318, in __init__
    self._open()
  File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 323, in _open
    self.establish_connection()
  File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 905, in establish_connection
    raise NetmikoAuthenticationException(msg)
netmiko.ssh_exception.NetmikoAuthenticationException: Authentication failure: unable to connect cisco_ios 1.1.1.1:22




1 Ответ

0 голосов
/ 04 марта 2020

вместо того, чтобы печатать «Ошибка входа» в except, вы можете просто собрать все исключения, как показано ниже:

except Exception as e:
    print(e)

Таким образом, вы можете собрать все исключения.

...