首页 > 解决方案 > 使用 net-snmp 5.8,当使用特殊字符(&、^、$)作为加密密钥和身份验证密钥时,swnpwalk 远程调用失败

问题描述

我正在使用 snmpwalk 从 Windows 命令行运行以下调用。

snmpwalk -v 3 -a SHA -A 2OzqVwOQNZcImYBdI9Tfu9HcXFACVB7 
-x AES -X HfkFHRPpyDnGmdRSpI2X4b3ayGYVyeO -l authPriv 
-u sha_aes_DmSc7KCE2ggU 192.168.2.226 iso.3.6.1.2.1

主机 192.168.2.226 是一个 linux 服务器。用户之前是通过在 ssh 远程会话中运行以下命令创建的:

sudo net-snmp-config --create-snmpv3-user -ro -a SHA 
-A 2OzqVwOQNZcImYBdI9Tfu9HcXFACVB7 -x AES 
-X HfkFHRPpyDnGmdRSpI2X4b3ayGYVyeO sha_aes_DmSc7KCE2ggU

在前一种情况下,调用工作正常。

当 -A 或 -X 参数包含特殊字符 ^ 时,问题就出现了。在任何一种情况下,我都会收到以下消息:

snmpwalk: Authentication failure (incorrect password, community or key)

我尝试使用 Windows 命令行中的 ^^ 转义 ^ 字符,但它仍然失败。

然后我在 ssh 会话的上下文中运行 snmpwalk 调用(而不是从 Windows 控制台远程调用),并且调用工作正常。

我希望调用以完全相同的方式工作。有人知道我可能会错过什么吗?

标签: snmpnet-snmpsnmpd

解决方案


对于 Windows,特殊符号 [^] 需要用双引号括起来,例如:

snmpwalk -v2c -c 123abc"^"666 1.1.1.1

推荐阅读