首页 文章

使用Python3 ncclient / paramiko时出错?

提问于
浏览
3

我正在通过Eric Chou的一本名为Mastering Python网络的书(我是一名网络工程师) .

其中一个示例提供了使用netconf连接到Cisco Nexus设备的示例代码,但在尝试连接时,我收到以下与以下相关的错误:

AttributeError:'_ RSAPublicKey'对象没有属性'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
)

我得到以下错误:

未知异常:'_ RSAPublicKey'对象没有属性'verify'Trackback(最近一次调用最后一次):文件“/usr/local/lib/python3.5/dist-packages/paramiko/transport.py”,第1925行,in运行self.kex_engine.parse_next(ptype,m)文件“/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py”,第47行,在parse_next中返回self._parse_kexecdh_reply(m)文件“/ usr / local / lib / python3.5 / dist-packages / paramiko / kex_ecdh_nist.py“,第107行,在_parse_kexecdh_reply self.transport.verify_key(K_S,sig)文件”/usr/local/lib/python3.5/dist -packages / paramiko / transport.py“,第1750行,在_verify_key中,如果不是key.verify_ssh_sig(self.H,消息(sig)):文件”/usr/local/lib/python3.5/dist-packages/paramiko/ rsakey.py“,第127行,在verify_ssh_sig中key.verify(AttributeError:' RSAPublicKey'对象没有属性'verify'Trackback(最近一次调用最后一次):文件”“,第8行,在文件”/ usr / local / lib中/python3.5/dist-packages/ncclient-0.5.3-py3.5.egg/ncclient/manager.py“,第155行,在连接文件中”/ usr / l ocal / lib / python3.5 / dist-packages / ncclient-0.5.3-py3.5.egg / ncclient / manager.py“,第120行,在connect_ssh文件中”/usr/local/lib/python3.5/dist -packages / ncclient-0.5.3-py3.5.egg / ncclient / transport / ssh.py“,第409行,在连接文件中”/usr/local/lib/python3.5/dist-packages/paramiko/transport . py“,第545行,在start_client中提升e文件”/usr/local/lib/python3.5/dist-packages/paramiko/transport.py“,第1925行,运行self.kex_engine.parse_next(ptype,m)文件“/usr/local/lib/python3.5/dist-packages/paramiko/kex_ecdh_nist.py”,第47行,在parse_next中返回self._parse_kexecdh_reply(m)文件“/usr/local/lib/python3.5/dist- packages / paramiko / kex_ecdh_nist.py“,第107行,在_parse_kexecdh_reply self.transport.verify_key(K_S,sig)文件”/usr/local/lib/python3.5/dist-packages/paramiko/transport.py“,第1750行,在_verify_key中,如果不是key.verify_ssh_sig(self.H,Message(sig)):在verify_ssh_sig键中输入文件“/usr/local/lib/python3.5/dist-packages/paramiko/rsakey.py”,第127行 . 验证(AttributeError:' RSAPu blicKey'对象没有属性'verify'

2 回答

  • 0

    只是上次更新的后续注释,目录ncclient是从以下git存储库克隆的:

    $ git clone https://github.com/ncclient/ncclient
    $ cd ncclient/
    $ sudo python3 setup.py install
    

    思科客户端脚本可以在这里的书github repo上看到,https://github.com/PacktPublishing/Mastering-Python-Networking/blob/master/Chapter03/Cisco/cisco_nxapi_1.py .

    埃里克

  • 0

    更新:

    我还联系了我工作的书的作者(Eric Chou(掌握Python网络)) . Eric好心地回答显示他为复制代码所采取的步骤以及他在Ubuntu主机上安装的相关依赖项 .

    一旦我(重新)在我的Ubuntu主机上安装了相同的软件包/依赖项列表,代码工作/错误清除,所以我显然已经缺少下面的一个或多个 .

    如果有人遇到类似的话,我采取以下步骤来修复我看到的错误:

    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
    

相关问题