Zabbix 6.2.2版本密码设置失效的原因咨询
Zabbix 6.2.2密码修改失效问题解决
问题核心原因
Zabbix 6.x版本起,用户密码存储机制彻底变更——不再使用单纯的MD5哈希值,转而采用加盐的PBKDF2哈希算法。你沿用旧版本直接用md5('PASSWORD')赋值的方式,生成的字符串完全不匹配新版本的密码验证逻辑,所以执行update语句后密码并未被正确设置。
正确的密码修改方式
方式1:前端可视化修改(最推荐)
- 用默认密码
zabbix登录Zabbix前端 - 进入管理 > 用户,定位到Admin用户
- 编辑用户信息,在密码栏输入新密码并保存,系统会自动生成符合要求的哈希值存入数据库
方式2:数据库手动生成合规哈希值
如果必须通过数据库操作,需先生成带盐的PBKDF2哈希值:
- 查看Zabbix服务端配置文件(通常为
/etc/zabbix/zabbix_server.conf)中的ZBX_SECRET参数,这是全局盐值(未配置则使用默认值zabbix) - 用脚本生成合规哈希,示例Python脚本:
import hashlib import base64 password = "你的目标密码" salt = "配置文件中的ZBX_SECRET值" # 无配置则填"zabbix" # 生成PBKDF2-SHA256哈希 dk = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt.encode('utf-8'), 100000) hashed_pwd = base64.b64encode(dk).decode('utf-8') print(hashed_pwd)
- 将生成的哈希值更新到数据库:
UPDATE users SET passwd='生成的哈希字符串' WHERE username='Admin';
方式3:通过Zabbix API修改
调用API更新密码,示例请求格式:
{ "jsonrpc": "2.0", "method": "user.update", "params": { "userid": "1", "passwd": "你的新密码" }, "auth": "你的API授权令牌", "id": 1 }
补充说明
Zabbix 5.x及更早版本确实使用单纯MD5存储密码,但6.x版本为提升安全性更换了加密机制,这是原有操作失效的根本原因。
内容的提问来源于stack exchange,提问作者Xaver
相关产品推荐
相关产品推荐

