Ошибка соединения с Netmiko - TypeError: connect () получил неожиданный аргумент ключевого слова 'passphrase' - PullRequest
0 голосов
/ 03 сентября 2018

Я делаю первые шаги с 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 в пространстве пользователя, не уверен, что это может вызвать проблемы?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Это проблема Netmiko, так как это означает, что мне нужно откатить требования к версии Netmiko, чтобы указать более новую версию Paramiko, но да, это, вероятно, исправит это.

0 голосов
/ 08 сентября 2018

Это не проблема нетмико. Это библиотека 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.
...