首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Netmiko登录故障处理

Netmiko登录故障处理
EN

Stack Overflow用户
提问于 2020-01-22 20:46:16
回答 2查看 2.3K关注 0票数 1

我在找人帮忙。我正在尝试编写一个脚本,通过SSH连接到一个设备,如果身份验证失败,打印出一条"Login Failed“语句。不幸的是,错误处理似乎不起作用,并抛出一个错误,请参阅下面的跟踪。

任何建议都将不胜感激。我是python的新手。

非常感谢Ric

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

发布于 2020-03-04 21:41:53

无需在except中打印“登录失败”,您只需收集所有异常,如下所示:

代码语言:javascript
运行
复制
except Exception as e:
    print(e)

通过这种方式,您可以收集每个异常。

票数 0
EN

Stack Overflow用户

发布于 2021-01-29 20:49:14

在定义Netmiko参数时,除了只提供‘值’的IP地址之外,您可以为所有内容提供key:value对。您总是需要为任何值提供“key”。此外,在定义Netmiko参数时,请将它们放在大括号中,而不是用括号括起来。您应该检查您的导入语句,它们可以被清除。实际上,在编写脚本时,您应该多关注一些细节,因为这在编写脚本时非常重要。

代码语言:javascript
运行
复制
Netmiko{
ip: "1.1.1.1",
username: "fred",
password: getpass(),
device_type: "cisco_ios"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59860083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档