我正在尝试将 pysnmp 库与 SNMP V3 设置与 MD5 Auth 协议和 AesCfb128 Priv 协议一起使用,以从交换机获取详细信息。我正在尝试两件事。
1.在base机器上安装pysnmp和所有依赖包(包括pycrytpto)
2.为python3创建虚拟环境,并在这个虚拟环境中安装pysnmp和所有依赖包(包括pycrytpto)。
当我采用第一种方法时,可以正确检索详细信息。但是当我尝试第二种方法时,我收到“加密服务不可用”错误。我检查了两者的已安装软件包列表几乎相同。
下面是基本机器的详细信息
$ pip3 list
pip (9.0.1)
ply (3.11)
pyasn1 (0.4.5)
pycryptodomex (3.8.2)
pysmi (0.3.4)
pysnmp (4.4.9)
setuptools (28.8.0)
我的虚拟环境是在“/Users//Test/Python/Pysnmp”位置创建的
$ /Users/<user_name>/Test/Python/Pysnmp/bin/pip3 list
Package Version
pip 18.1
pipdeptree 0.13.2
ply 3.11
pyasn1 0.4.5
pycryptodomex 3.8.2
pysmi 0.3.4
pysnmp 4.4.9
setuptools 40.6.2
这是我尝试使用的命令
for (errorIndication,errorStatus,errorIndex,varBinds) in nextCmd(SnmpEngine(),
UsmUserData('test_user', 'test_password', 'test_password', usmHMACMD5AuthProtocol, usmAesCfb128Protocol),
UdpTransportTarget((host, 161)), ContextData(),
ObjectType(ObjectIdentity(oid)), lexicographicMode=False):
当我在基本机器(如)中运行上述代码时python3 script.py
,它会正确返回详细信息。
但是当我使用安装在虚拟环境中的python(如/Users/<user_name>/Test/Python/Pysnmp/bin/python3 script.py
)运行它时,它会返回“ Ciphering services not available ”作为错误指示。
我错过了什么???
谢谢