首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用telnet连接到Cisco IOS路由器的Napalm

使用telnet连接到Cisco IOS路由器的Napalm
EN

Stack Overflow用户
提问于 2021-01-06 01:20:59
回答 2查看 480关注 0票数 0

我尝试使用Napalm从python chevron使用telnet连接到思科路由器,但从netmiko.ssh得到一个错误。

下面是我正在使用的代码片段

代码语言:javascript
复制
from napalm import get_network_driver

driver = get_network_driver('ios')

with driver('ip_address', 'username', 'password', optional_args={'port': 23,'transport': telnet}) as device:

    print(device.get_facts())

下面是我收到的错误消息:

代码语言:javascript
复制
NAPALM didn't catch this exception. Please, fill a bugfix on https://github.com/napalm-automation/napalm/issues
Don't forget to include this traceback.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python39\lib\site-packages\napalm\base\base.py", line 46, in __enter__
    self.open()
  File "C:\Program Files\Python39\lib\site-packages\napalm\ios\ios.py", line 169, in open
    self.device = self._netmiko_open(
  File "C:\Program Files\Python39\lib\site-packages\napalm\base\base.py", line 86, in _netmiko_open
    self._netmiko_device = ConnectHandler(
  File "C:\Program Files\Python39\lib\site-packages\netmiko\ssh_dispatcher.py", line 312, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "C:\Program Files\Python39\lib\site-packages\netmiko\cisco\cisco_ios.py", line 17, in __init__
    return super().__init__(*args, **kwargs)
  File "C:\Program Files\Python39\lib\site-packages\netmiko\base_connection.py", line 346, in __init__
    self._open()
  File "C:\Program Files\Python39\lib\site-packages\netmiko\base_connection.py", line 351, in _open
    self.establish_connection()
  File "C:\Program Files\Python39\lib\site-packages\netmiko\base_connection.py", line 910, in establish_connection
    self.telnet_login()
  File "C:\Program Files\Python39\lib\site-packages\netmiko\cisco_base_connection.py", line 171, in telnet_login
    raise NetmikoAuthenticationException(msg)
netmiko.ssh_exception.NetmikoAuthenticationException: Login failed: ip_address
EN

回答 2

Stack Overflow用户

发布于 2021-01-06 12:01:35

在名为ip_address的主机上登录失败,如果'ip_address‘是您尝试连接的主机的名称,也许您可以将主机IP放在适当的位置。

我相信这个短视频可以帮助你https://www.youtube.com/watch?v=QTapxlSEo1E

您是否会问自己应该将主机地址放在哪里?

您尝试连接的主机的名称是'ip_address‘吗?

对“用户名”和“密码”字段也有同样的问题。

你就在附近。给你最好的!

票数 0
EN

Stack Overflow用户

发布于 2021-10-07 12:20:28

要建立到Cisco-IOS/XE设备的SSH/Telnet会话,您需要

a)在“line”-level中启用用户身份验证:

代码语言:javascript
复制
line vty 0 15
 login local

b)添加具有正确权限级别的本地用户帐号:

代码语言:javascript
复制
username testuser privilege 15 secret testpass

c)为传入会话启用正确的协议:

代码语言:javascript
复制
line vty 0 15
 transport input telnet

telnet可能是默认设置,最好禁用它并切换到ssh:

代码语言:javascript
复制
line vty 0 15
 transport input ssh 

完成这项工作后,下面的代码运行得很好:

代码语言:javascript
复制
>>> with driver(hostname='192.168.193.139', username='testuser', password='testpass', optional_args={'port': 23,'transport': "telnet"}) as device:
...   print(device.get_facts())

...
{'uptime': 660, 'vendor': 'Cisco', 'os_version': 'Virtual XE Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.16.16, RELEASE SOFTWARE (fc2)', 'serial_number': '91STKVRFLW91', 'model': 'CSR1000V', 'hostname': 'CSR-VM', 'fqdn': 'CSR-VM.lab.local', 'interface_list': ['GigabitEthernet1', 'GigabitEthernet2', 'GigabitEthernet3', 'GigabitEthernet4', 'Loopback0', 'Loopback1000']}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65583606

复制
相关文章

相似问题

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