首页 > 解决方案 > Python / 自动化设备的 Netmiko 超时错误

问题描述

我正在关注 David Bombal 的网络自动化视频:https ://www.youtube.com/watch?v=gEVFRBnjpS4

这是我的代码:

from netmiko import ConnectHandler

iosv_l2_s2 = {
    'device_type': 'cisco_ios',
    'ip': '192.168.122.102',
    'username': 'b',
    'password': 'cisco',
}

iosv_l2_s3 = {
    'device_type': 'cisco_ios',
    'ip': '192.168.122.103',
    'username': 'b',
    'password': 'cisco',
}

iosv_l2_s4 = {
    'device_type': 'cisco_ios',
    'ip': '192.168.122.104',
    'username': 'b',
    'password': 'cisco',
}

iosv_l2_s5 = {
    'device_type': 'cisco_ios',
    'ip': '192.168.122.105',
    'username': 'b',
    'password': 'cisco',
}

iosv_l2_s6 = {
    'device_type': 'cisco_ios',
    'ip': '192.168.122.106',
    'username': 'b',
    'password': 'cisco',
}

with open('iosv_l2_config') as f:
    lines = f.read().splitlines()
print (lines)


all_devices = [iosv_l2_s6, iosv_l2_s5, iosv_l2_s4, iosv_l2_s3, iosv_l2_s2]

for devices in all_devices:
    net_connect = ConnectHandler(**devices)
    output = net_connect.send_config_set(lines)
    print (output)

f.closed()

这是我收到的错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 931, in establish_connection
    self.remote_conn_pre.connect(**ssh_connect_params)
  File "/usr/local/lib/python3.8/dist-packages/paramiko/client.py", line 412, in connect
    server_key = t.get_remote_server_key()
  File "/usr/local/lib/python3.8/dist-packages/paramiko/transport.py", line 834, in get_remote_server_key
    raise SSHException("No existing session")
paramiko.ssh_exception.SSHException: No existing session

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "netmiko1.py", line 46, in <module>
    net_connect = ConnectHandler(**devices)
  File "/usr/local/lib/python3.8/dist-packages/netmiko/ssh_dispatcher.py", line 315, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/netmiko/cisco/cisco_ios.py", line 17, in __init__
Exception: Error reading SSH protocol banner[Errno 9] Bad file descriptor
    return super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 346, in __init__
    self._open()
  File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 351, in _open
    self.establish_connection()
  File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 976, in establish_connection
    raise NetmikoTimeoutException(msg)
netmiko.ssh_exception.NetmikoTimeoutException: Paramiko: 'No existing session' error: try increasing 'conn_timeout' to 10 seconds or larger.

因此,第一个设备配置良好,但随后出现上述错误。

错误如何包含“paramiko”有点奇怪,但我没有在这里使用或导入 paramiko 库。只是netmiko。知道如何纠正这个问题吗?谢谢!

标签: python

解决方案


推荐阅读