我正在使用netmiko和尝试基本连接的第一步:
from netmiko import ConnectHandler
device = ConnectHandler(device_type="cisco_ios", ip="10.118.10.8", username="name", password="passowrd")
output = device.send_command("show version")
print output
device.disconnect()
我尝试了device_type =“cisco_ios”和arista_eos,我两次收到以下内容:
Traceback (most recent call last):
File "netmiko_v1.py", line 3, in <module>
device = ConnectHandler(device_type="cisco_ios", ip="10.118.10.8", username="name", password="password")
File "build/bdist.linux-x86_64/egg/netmiko/ssh_dispatcher.py", line 205, in ConnectHandler
File "build/bdist.linux-x86_64/egg/netmiko/base_connection.py", line 270, in __init__
File "build/bdist.linux-x86_64/egg/netmiko/base_connection.py", line 766, in establish_connection
TypeError: connect() got an unexpected keyword argument 'passphrase'
我假设我得到一些非常简单明显的错误,有什么建议吗?
添加数据包捕获不会向目标IP地址显示任何内容,因此假设这是本地问题。由于主机缺乏权限我不得不在用户空间安装netmiko,不确定这是否会导致问题?
这不是netmiko问题。它使用的paramiko库似乎有一些问题。确保将您的设置上的paramiko版本升级到最新版本(在我的情况下为2.4.1): -
>>> import paramiko
>>> print paramiko.__version__
2.4.1
I saw this issue if the version of paramiko is 2.0.0 or less
##### Log Below ########
>>> import paramiko
>>> print paramiko.__version__
2.0.0
>>> from netmiko import ConnectHandler
>>> dut1 = {
... 'device_type': 'vyos',
... 'ip': 'X.X.X.X',
... 'username': 'XXXX',
... 'password': 'XXX',
... }
>>> t = ConnectHandler(**dut1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "netmiko/ssh_dispatcher.py", line 210, in ConnectHandler
return ConnectionClass(*args, **kwargs)
File "netmiko/base_connection.py", line 270, in __init__
self.establish_connection()
File "netmiko/base_connection.py", line 766, in establish_connection
self.remote_conn_pre.connect(**ssh_connect_params)
TypeError: connect() got an unexpected keyword argument 'passphrase'
Hope this helps.
这是一个Netmiko问题,因为它意味着我需要推出Netmiko版本要求来指定更新版本的Paramiko,但是肯定可以修复它。