我在找人帮忙。我正在尝试编写一个脚本,通过SSH连接到一个设备,如果身份验证失败,打印出一条"Login Failed“语句。不幸的是,错误处理似乎不起作用,并抛出一个错误,请参阅下面的跟踪。
任何建议都将不胜感激。我是python的新手。
非常感谢Ric
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
发布于 2020-03-04 21:41:53
无需在except
中打印“登录失败”,您只需收集所有异常,如下所示:
except Exception as e:
print(e)
通过这种方式,您可以收集每个异常。
发布于 2021-01-29 20:49:14
在定义Netmiko参数时,除了只提供‘值’的IP地址之外,您可以为所有内容提供key:value
对。您总是需要为任何值提供“key”。此外,在定义Netmiko参数时,请将它们放在大括号中,而不是用括号括起来。您应该检查您的导入语句,它们可以被清除。实际上,在编写脚本时,您应该多关注一些细节,因为这在编写脚本时非常重要。
Netmiko{
ip: "1.1.1.1",
username: "fred",
password: getpass(),
device_type: "cisco_ios"
}
https://stackoverflow.com/questions/59860083
复制相似问题