【问题标题】:Problem to connect ssh in a cisco device using netmiko使用 netmiko 在 cisco 设备中连接 ssh 的问题
【发布时间】:2019-02-10 20:19:24
【问题描述】:

我正在尝试使用 netmiko 连接到 cisco 设备,但我遇到了以下错误:我尝试更改我的代码但根本不起作用。

    from netmiko import ConnectHandler

    cisco ={
     'device_type':  'cisco_ios',
     'ip': ' 192.168.1.1',
     'username': 'cisco',
     'password': 'cisco',
    }

net_connect = ConnectHandler(**cisco)
output = net_connect.send_command('show ip inter brief')
print(output)

Traceback(最近一次调用最后一次):文件 "/home/rdc/.local/lib/python3.6/site-packages/netmiko/base_connection.py", 第 782 行,在建立连接中 self.remote_conn_pre.connect(**ssh_connect_params) 文件“/home/rdc/.local/lib/python3.6/site-packages/paramiko/client.py”, 第 334 行,连接中 to_try = list(self._families_and_addresses(hostname, port)) 文件“/home/rdc/.local/lib/python3.6/site-packages/paramiko/client.py”, 第 204 行,在 _families_and_addresses 主机名、端口、socket.AF_UNSPEC、socket.SOCK_STREAM 文件“/usr/lib/python3.6/socket.py”,第 745 行,在 getaddrinfo 对于 _socket.getaddrinfo(host, port, family, type, proto, flags) 中的 res: socket.gaierror: [Errno -2] Name or service not known

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

Traceback(最近一次调用最后一次):文件 “/home/rdc/Documents/connection.py”,第 10 行,在 net_connect = ConnectHandler(**cisco) 文件“/home/rdc/.local/lib/python3.6/site-packages/netmiko/ssh_dispatcher.py”, 第 218 行,在 ConnectHandler 返回 ConnectionClass(*args, **kwargs) 文件 "/home/rdc/.local/lib/python3.6/site-packages/netmiko/base_connection.py", 第 270 行,在 init 中 self.establish_connection() 文件“/home/rdc/.local/lib/python3.6/site-packages/netmiko/base_connection.py”, 第 787 行,在建立连接中 raise NetMikoTimeoutException(msg) netmiko.ssh_exception.NetMikoTimeoutException: Connection to device 超时:cisco_ios 192.168.1.1:22

>

【问题讨论】:

    标签: python python-3.x ssh cisco-ios


    【解决方案1】:

    我认为这部分异常解释了问题所在:

    netmiko.ssh_exception.NetMikoTimeoutException: Connection to device timed-out: cisco_ios 192.168.1.1:22
    

    当您尝试从同一台机器 SSH 到 192.168.1.1 时会发生什么?这行得通吗?

    【讨论】:

      【解决方案2】:

      你可以试试这段代码:

      from netmiko import ConnectHandler
      from getpass import getpass
      
      
      cisco_Router = {
          "device_type": "cisco_ios",
          "host": "router01",
          "username": "username",
          "password": "password"}
      
      with ConnectHandler(**cisco_Router) as net_connect:
      
          result = net_connect.send_command('show ip inter brief')
          net_connect.disconnect()
      
      print(result)
      

      【讨论】:

        最近更新 更多