使用 Python3 ncclient/paramiko 时出错?
Error using Python3 ncclient/paramiko?
我目前正在阅读 Eric Chou(我是一名网络工程师)的一本名为《精通 Python 网络》的书。
其中一个示例提供了使用 netconf 连接到 Cisco Nexus 设备的示例代码,但在尝试连接时我收到以下与以下相关的错误:
AttributeError: '_RSAPublicKey' object has no attribute 'verify'
谁能告诉我可能是什么问题。
我在 Ubuntu 16.04 LTS 上安装了最新版本的 Python3,并按照书中的说明下载并安装了最新版本的 ncclient。
顺便说一句,我正在连接到 Cisco Devnet Nexus NX-API 沙盒模拟器,使用下面代码中显示的凭据的手动 ssh 终端连接也可以正常工作。
根据 运行 以下代码:
from ncclient import manager
conn=manager.connect(
host='sbx-nxos-mgmt.cisco.com',
port=8181,
username='admin',
password='Admin_1234!',
hostkey_verify=False,
device_params={'name': 'nexus'},
look_for_keys=False
)
我收到以下错误:
Unknown exception: '_RSAPublicKey' object has no attribute 'verify'
Traceback (most recent call last): File
"/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line
1925, in run
self.kex_engine.parse_next(ptype, m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py",
line 47, in parse_next
return self._parse_kexecdh_reply(m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py",
line 107, in _parse_kexecdh_reply
self.transport._verify_key(K_S, sig) File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line
1750, in _verify_key
if not key.verify_ssh_sig(self.H, Message(sig)): File "/usr/local/lib/python3.5/dist-packages/paramiko/rsakey.py", line 127,
in verify_ssh_sig
key.verify( AttributeError: '_RSAPublicKey' object has no attribute 'verify'
Traceback (most recent call last): File "", line 8, in
File
"/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/manager.py",
line 155, in connect File
"/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/manager.py",
line 120, in connect_ssh File
"/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/transport/ssh.py", line 409, in connect File
"/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line
545, in start_client
raise e File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line
1925, in run
self.kex_engine.parse_next(ptype, m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py",
line 47, in parse_next
return self._parse_kexecdh_reply(m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py",
line 107, in _parse_kexecdh_reply
self.transport._verify_key(K_S, sig) File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line
1750, in _verify_key
if not key.verify_ssh_sig(self.H, Message(sig)): File "/usr/local/lib/python3.5/dist-packages/paramiko/rsakey.py", line 127,
in verify_ssh_sig
key.verify( AttributeError: '_RSAPublicKey' object has no attribute 'verify'
更新:
我还联系了我正在使用的书的作者 (Eric Chou (Mastering Python Networking))。 Eric 亲切地回复了他复制代码的步骤以及他还在 Ubuntu 主机上安装的相关依赖项。
一旦我也(重新)在我的 Ubuntu 主机上安装了相同的 packages/dependencies 列表,代码 worked/error 就被清除了,所以我肯定遗漏了以下一项或多项.
如果有人遇到类似情况,我会采取以下步骤来修复我看到的错误:
sudo apt-get install -y python3-dev libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev python3-pip git python3-requests
cd ncclient/
ncclient$ sudo python3 setup.py install
只是上次更新的后续说明,目录 ncclient 是从以下 git 存储库克隆的:
$ git clone https://github.com/ncclient/ncclient
$ cd ncclient/
$ sudo python3 setup.py install
Cisco 客户端脚本可以在 github repo 书上看到,https://github.com/PacktPublishing/Mastering-Python-Networking/blob/master/Chapter03/Cisco/cisco_nxapi_1.py。
埃里克
我目前正在阅读 Eric Chou(我是一名网络工程师)的一本名为《精通 Python 网络》的书。
其中一个示例提供了使用 netconf 连接到 Cisco Nexus 设备的示例代码,但在尝试连接时我收到以下与以下相关的错误:
AttributeError: '_RSAPublicKey' object has no attribute 'verify'
谁能告诉我可能是什么问题。
我在 Ubuntu 16.04 LTS 上安装了最新版本的 Python3,并按照书中的说明下载并安装了最新版本的 ncclient。
顺便说一句,我正在连接到 Cisco Devnet Nexus NX-API 沙盒模拟器,使用下面代码中显示的凭据的手动 ssh 终端连接也可以正常工作。
根据 运行 以下代码:
from ncclient import manager
conn=manager.connect(
host='sbx-nxos-mgmt.cisco.com',
port=8181,
username='admin',
password='Admin_1234!',
hostkey_verify=False,
device_params={'name': 'nexus'},
look_for_keys=False
)
我收到以下错误:
Unknown exception: '_RSAPublicKey' object has no attribute 'verify' Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1925, in run self.kex_engine.parse_next(ptype, m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py", line 47, in parse_next return self._parse_kexecdh_reply(m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py", line 107, in _parse_kexecdh_reply self.transport._verify_key(K_S, sig) File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1750, in _verify_key if not key.verify_ssh_sig(self.H, Message(sig)): File "/usr/local/lib/python3.5/dist-packages/paramiko/rsakey.py", line 127, in verify_ssh_sig key.verify( AttributeError: '_RSAPublicKey' object has no attribute 'verify'
Traceback (most recent call last): File "", line 8, in File "/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/manager.py", line 155, in connect File "/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/manager.py", line 120, in connect_ssh File "/usr/local/lib/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/transport/ssh.py", line 409, in connect File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 545, in start_client raise e File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1925, in run self.kex_engine.parse_next(ptype, m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py", line 47, in parse_next return self._parse_kexecdh_reply(m) File "/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py", line 107, in _parse_kexecdh_reply self.transport._verify_key(K_S, sig) File "/usr/local/lib/python3.5/dist-packages/paramiko/transport.py", line 1750, in _verify_key if not key.verify_ssh_sig(self.H, Message(sig)): File "/usr/local/lib/python3.5/dist-packages/paramiko/rsakey.py", line 127, in verify_ssh_sig key.verify( AttributeError: '_RSAPublicKey' object has no attribute 'verify'
更新:
我还联系了我正在使用的书的作者 (Eric Chou (Mastering Python Networking))。 Eric 亲切地回复了他复制代码的步骤以及他还在 Ubuntu 主机上安装的相关依赖项。
一旦我也(重新)在我的 Ubuntu 主机上安装了相同的 packages/dependencies 列表,代码 worked/error 就被清除了,所以我肯定遗漏了以下一项或多项.
如果有人遇到类似情况,我会采取以下步骤来修复我看到的错误:
sudo apt-get install -y python3-dev libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev python3-pip git python3-requests
cd ncclient/
ncclient$ sudo python3 setup.py install
只是上次更新的后续说明,目录 ncclient 是从以下 git 存储库克隆的:
$ git clone https://github.com/ncclient/ncclient
$ cd ncclient/
$ sudo python3 setup.py install
Cisco 客户端脚本可以在 github repo 书上看到,https://github.com/PacktPublishing/Mastering-Python-Networking/blob/master/Chapter03/Cisco/cisco_nxapi_1.py。
埃里克