优先使用bt命令重置,因其是6.x及以上版本最稳最快方式;输入5仅改密码、输入6可同时重置用户名和密码,全程走面板自身逻辑,避免绕过校验或写错数据。

能直接用 bt 命令重置,就别碰数据库、别删文件、别手算哈希——这是最安全、最省事、也最不容易出错的方式。
执行 bt 命令前必须确认的三件事
不是所有服务器上敲 bt 都能立刻弹出菜单。常见卡点就在这几步:
-
bt命令不存在?说明宝塔没正确注册 PATH,试试绝对路径:/www/server/panel/pyenv/bin/python /www/server/panel/tools.pyc panel 新密码 - 面板进程已挂?先执行
bt 2启动,或systemctl start bt;若失败,再查日志:tail -n 20 /www/server/panel/logs/error.log - SSH 登录用户不是 root?
bt所有操作都依赖 root 权限,普通用户执行会静默失败或报 Permission denied
用 bt 5 修改密码时的实操细节
这个交互式流程看着简单,但输错一次就可能卡在“确认新密码”环节,因为校验逻辑比网页端更严格:
- 新密码必须 ≥8 位,且同时含大小写字母 + 数字(符号可选,但建议加一个,比如
MyPass123!) - 两次输入必须完全一致,包括空格和不可见字符;终端不显示明文,输错只能重来
- 成功后提示
password has been changed,但浏览器不会自动登出——旧 Cookie 仍有效,得手动清空或开无痕窗口再试
当 bt 5 卡住或报错,改用命令行参数绕过菜单
适合批量处理或终端响应慢的场景,但要注意参数格式不能有空格:
- 标准写法:
bt reset_panel_password MyNewPass123!(注意:reset_panel_password和密码之间**不能有空格**) - 若提示
Unknown command,说明当前 bt 版本太老(如 6.x 以下),退回用cd /www/server/panel && python tools.pyc panel MyNewPass123! - 执行后不会回显密码,也不提示成功,验证方式只有:用新密码登录面板首页,或执行
bt default查看是否已更新
别碰 default.db,除非你真清楚自己在干啥
网上很多教程教人用 sqlite3 直接 UPDATE users 表,这事儿风险极高:
- 哈希值必须是宝塔专用的
pbkdf2:sha256:260000$...格式,手写或复制错一位就永远登不上 - 忘记
UPDATE前先.tables确认表名?宝塔 7.x 后users表已改名,直接执行会报 no such table - 更隐蔽的坑:修改完不退出 SQLite 就关终端,
default.db可能被锁住,导致面板启动失败
真正需要直连数据库的,只有一种情况:bt 命令本身损坏且无法重装工具模块——这种属于小概率异常,优先考虑重装面板核心而非硬刚 SQLite。











