Agent2API 管理员密码忘记了怎么办?——Docker 版重置教程(实测版)
Agent2API 面板没有「忘记密码」入口。忘记管理员密码的唯一正路:停容器 → 整目录备份 → 只删数据库里 panelAdmin 那一条 → 重启 → 立刻重新注册。2026-10-14 晚真实生产实例实测,16 个账号零损失。
Agent2API 管理员密码忘记了怎么办?——Docker 版重置教程(实测版)
一句话结论:Agent2API 面板里没有「忘记密码」,也没有改密码的入口。忘记管理员账号密码,唯一的正路是到宿主机上,停容器 → 整目录备份 → 只删数据库里那一条管理员记录 → 重启 → 立刻重新注册。本文是我们 2026-10-14 晚在真实生产实例上一步步走通、并验证数据零损失的完整记录,下次照着做即可复用。
一、先搞清楚:为什么只能这么重置
这几条都是当晚逐项实查过的,不是猜的:
- 单管理员模式:面板没有用户管理菜单,不能添加第二个管理员,也没有角色体系。想给别人权限,只能在「网关 Key」页发 API 调用密钥——那是调用用的,不是面板登录账号。
- 面板内无改密入口:设置页全部 10 个选项卡翻完,没有修改/重置管理员密码、修改账号的任何入口;安全页只有跨域、人机验证(ALTCHA)和面板登录(仅一个退出登录按钮);登录页也没有「忘记密码」链接。
- 面板不显示当前用户名:登录后的任何页面都不明文显示管理员用户名。用户名密码如果只存进了保险库(Secure Vault),保险库只进不出、读不出明文——忘就是真忘了,只能重置。
- 管理员记录的位置(关键):Docker 版的全部状态只存一处——数据目录里的一个 SQLite 数据库
agent2api.db(没有 config.json)。管理员凭据就一条记录,存在kv表里,键名panelAdmin。上游账号在accounts表、网关 Key 另有其表,只删panelAdmin这一行,不动其他任何数据。 - 官方机制:据上游 README,管理员账号是「首次运行注册」产生的,或用环境变量
AGENT2API_ADMIN_USER+AGENT2API_ADMIN_PASSWORD预置(启动时自动转哈希)。官方没有忘记密码流程,所以「清掉管理员记录 → 重启 → 重新注册」就是官方机制下的兜底正路。
二、动手前:三条红线 + 两件准备
红线(碰一条就可能丢数据):
- ❌ 绝不用卸载脚本的「删除数据目录」选项——会把 16 个上游账号、网关 Key 连同全部数据一起清掉。
- ❌ 绝不删库、绝不整表清空——只允许
DELETEkv表中key='panelAdmin'这一行。 - ❌ 绝不把新密码发到聊天里——新凭据只走 Secure Vault 安全卡片存入保险库,正文、文档、命令记录里都不落明文。
准备:
- ⏰ 挑网关低峰期动手:停容器期间网关会短暂中断,重置完即恢复。
- 🔢 先记下重置前的账号总数(面板首页可见),重置后要拿它对账。我们这次重置前是 16 个账号(启用 11 / 禁用 5)。
- 🔑 先把想好的新用户名+新密码准备好(通过安全卡片存进保险库),因为重启后有一段「无管理员空窗期」(见步骤 7),手要快。
三、正式步骤(Docker 版,本机实例参数附后)
本机实例参数(复用时换成你自己的):宿主机 RackNerd VPS(主机名
racknerd-3769996,root 操作);容器名agent2api,镜像aimodcc/agent2api:latest,端口127.0.0.1:3065->3065,对外入口https://test002.zttz.eu.org/(反代);数据目录/home/docker/agent2api/data。
步骤 1 确认容器还在、参数对得上
docker ps核对:容器名 agent2api、镜像、端口映射、状态 healthy,四样对上再继续。
步骤 2 停容器
docker stop agent2api停掉之后再动数据库,避免边写边改。此时网关暂时中断,属正常。
步骤 3 整目录备份(不许跳过)
cp -a /home/docker/agent2api/data /home/docker/agent2api/data.bak-20261014
ls -lh /home/docker/agent2api/备份目录名带上日期。我们这次的库 agent2api.db 为 462,675,968 字节(约 441MB),目录里另有 debug/ 等附属内容、无 config.json——与「全部状态只在一个 SQLite 库里」的判断一致。
步骤 4 定位管理员记录,只看键名、不看密码哈希
sqlite3 /home/docker/agent2api/data/agent2api.db ".tables"
sqlite3 /home/docker/agent2api/data/agent2api.db "SELECT key FROM kv;"当晚库里的表为:accounts、kv、requests、request_raw、request_daily、logs、debug_traffic、checkin_records、account_usage_records、sqlite_sequence。按 admin/auth/user/pass 等关键词过滤 kv 键名,只命中一条:panelAdmin——定位完成。
步骤 5 只删这一行,并当场验证删干净
sqlite3 /home/docker/agent2api/data/agent2api.db "DELETE FROM kv WHERE key='panelAdmin';"
sqlite3 /home/docker/agent2api/data/agent2api.db "SELECT count(*) FROM kv WHERE key='panelAdmin';"第二条必须返回 0,才算删干净。不是 0,不要启动容器,回来查原因。
步骤 6 启动容器
docker start agent2api
docker ps确认容器恢复 healthy。
步骤 7 【最要紧】立刻打开面板,抢在第一时间重新注册
https://test002.zttz.eu.org/启动后系统认为「还没有管理员」,打开面板会直接出现 「注册管理员」页——这也反证第 5 步删除已生效。
⚠️ 空窗期警告:从容器启动到你注册完成这段时间,注册页是经公网入口暴露的,谁先打开谁就能注册成管理员。所以步骤 6 之后不要停顿、不要去干别的,立刻完成注册。
我们这次有个真实小插曲,正好当经验:Muse 在浏览器里准备代注册时,服务器回「管理员账号已存在,无需重复注册」——原来站主本人已经在空窗期内用同一套新凭据先行注册完了。遇到这句提示不要慌,先用新凭据试登录(见步骤 8),能进就是注册已完成。
步骤 8 验证两遍 + 数据对账(缺一不可)
- 用新凭据登录 → 成功进入面板;
- 退出,再登录一次 → 再次成功(两遍都过才算数,防「注册页缓存」之类的假成功);
- 看仪表盘:网关状态应为「运行中」;
- 数据对账:账号总数与重置前一致。我们这次仍为 16 个(启用 11 / 禁用 5),数据零损失;网关 Key 也应照旧在位。
步骤 9 把新登录存进保险库
新用户名+密码通过 Secure Vault 安全卡片存入保险库,此后 Muse 凭保存登录即可自动填充打开面板查看。密码不进聊天、不进文档、不进记忆明文。
步骤 10 备份先留几天
服务器上的 data.bak-20261014 不要马上删:观察几天确认一切稳定,再删不迟。真出问题,它就是回滚的救命稻草(见第五节)。
四、本次实测档案(2026-10-14 晚,留作复用参照)
| 项目 | 实测值 |
|---|---|
| 实例形态 | Docker 版,z.sh 一键脚本(z-apps 2.conf)安装 |
| 面板版本 | 重置后实查 3.0.3(设置→更新显示已是最新) |
| 数据库 | agent2api.db,462,675,968 字节(约 441MB),无 config.json |
| 管理员记录 | kv 表 key='panelAdmin',仅此一条 |
| 备份落点 | /home/docker/agent2api/data.bak-20261014(保留待过几日再删) |
| 验证结果 | 新登录实测登录成功、退出重登再成功(两次验证) |
| 数据结果 | 16 个账号完好(启用 11 / 禁用 5),零损失 |
五、回滚:万一重置后不对劲
docker stop agent2api
mv /home/docker/agent2api/data /home/docker/agent2api/data.bad
cp -a /home/docker/agent2api/data.bak-20261014 /home/docker/agent2api/data
docker start agent2api回到备份时的状态(包括旧管理员记录)。注意:回滚后仍是「旧密码想不起来」的原问题,只是把路退回起点,不丢数据。
六、其他形态怎么办(未实测,仅备查)
- 桌面版:全部状态在
~/.agent2api/(含 config.json,旧版目录为~/.workbuddy-proxy)。原理相同:停服 → 整目录备份 → 清掉管理员记录 → 重启重新注册。未在本机实测,操作前先备份、按同等红线执行。 - 环境变量预置:
AGENT2API_ADMIN_USER+AGENT2API_ADMIN_PASSWORD可在首次运行时预置管理员。文档未明说对「已注册管理员」是否强制覆盖,所以只列为可先试项;试不通,仍回到本文的删记录正路。
七、复用清单(下次照着打勾)
- [ ] 低峰期、新凭据已备好并存入保险库
- [ ] 重置前账号总数已记录:____ 个
- [ ]
docker ps四项核对无误 →docker stop - [ ] 整目录备份完成,备份名带日期:____________
- [ ]
kv键名确认只命中panelAdmin - [ ]
DELETE后复查 count = 0 - [ ]
docker start后立刻打开面板完成注册(空窗期越短越好) - [ ] 登录 → 退出 → 再登录,两次成功
- [ ] 网关运行中、账号总数与重置前一致、网关 Key 在位
- [ ] 备份保留观察数日后再删
*纪实说明:本文所有步骤、路径、表名与数值均来自 2026-10-14 晚的真实操作与回传实况;文内不含任何密码、哈希或密钥明文。*