深色模式
主密码与应用锁定
主密码不是登录密码,是保护 DEK 的根密钥。启用后 Reeve 启动是锁定状态,需要你输入主密码才能解凭据库。
进入
主界面 → 设置 → 主密码与应用锁定 卡片。
是否要启用主密码
| 场景 | 推荐 |
|---|---|
| 个人电脑、独占使用 | ✅ 推荐启用 |
| 多人共用电脑(家庭 / 团队) | ✅ 强烈建议启用 |
| 仅本地实验,无生产凭据 | 可不启用 |
| 笔记本电脑(被偷风险) | ✅ 强烈建议启用 |
加密机制详见 凭据加密。
启用主密码
- 设置卡片 → 设置主密码 按钮
- 输入主密码 + 确认(≥ 8 位,建议 16+ 位混合)
- 后端:
- Argon2id(m=19MiB, t=2, p=1) 派生 KEK
- 用 KEK 包装现有 DEK
- Wrapped DEK 覆盖 keyring
- 删除明文 DEK
- 完成 → 应用进入"locked-on-startup"模式
主密码不可恢复
忘了主密码无法找回。重置凭据库 = 所有 SSH/DB 凭据丢失。
修改主密码
- 输入当前主密码
- 输入新主密码 + 确认
- 后端:旧 KEK 解出 DEK → 新 KEK 重新包装 → 覆盖 keyring
关闭主密码
- 输入当前主密码
- 后端:解出 DEK → 直接明文写 keyring(降级到基础模式)
不推荐。除非你有特殊场景(如 CI/CD 自动化用 Reeve)。
空闲自动锁定
设置卡片 → 空闲锁定时间:
| 选项 | 行为 |
|---|---|
| 关闭 | 启动后一直 unlocked,直到退出 |
| 5 / 10 / 15 分钟 | 鼠标键盘无活动到时间 → 锁屏 |
| 30 / 60 分钟 | 同上,宽松 |
锁定时:
- DEK 缓存清零
- 显示 UnlockScreen
- 所有需 DEK 的 Command 拒绝(凭据加密 → 锁定时哪些操作受影响)
锁定不影响:
- 已建立的 SSH PTY 终端(连接已在,无需重新解凭据)
- 已运行的端口转发隧道
但新建连接、新工具调用都拒绝。
手动锁定
设置卡片 → 立即锁定 按钮(也可用快捷键 Cmd/Ctrl+Shift+L):
- 立即清 DEK 缓存
- 跳 UnlockScreen
- 适合"我要离开电脑"
UnlockScreen 行为
- 输入主密码 + Enter
- 错误限流:
- 3 次错误 → 锁 10s
- 10 次错误 → 锁 5 分钟
- 持续错误 → 加密退避
- 解锁成功后回到原页面(不丢导航状态)
重置凭据库
设置卡片 → 高级 → 重置凭据库 :
选项 A:重新加密
适合"我怀疑 keyring 可能泄漏":
- 输入主密码(验证身份)
- 后端:
- 生成新 DEK
- 用新 DEK 重加密所有 servers / installed_services / sensitive_vault
- 新 DEK 用 KEK 包装入 keyring
- 旧 DEK 覆写清零
- 完成 → 旧 keyring 条目失效
选项 B:彻底清空
适合"我想从零开始":
- 输入主密码
- 二次确认(拼"删除"字样)
- 后端:
- 删除所有 servers 行
- 删除所有 installed_services 行
- 清空 sensitive_vault.value_enc
- 删除 DEK
- 保留:审计日志、设置、技能、Runbook、经验库
数据备份建议
由于主密码不可找回,备份很重要:
- 主密码存到 1Password / Bitwarden 等密码管理器
- 数据目录
<app data>/com.agilefr.reeve/reeve.db可加密备份 - 不要直接备份到 OneDrive / iCloud Drive(密文 + keyring 同时可能被同步泄漏)
与多设备同步
Reeve 当前不内置同步。如果你想在多台电脑用同一组凭据:
- 在每台电脑独立添加(推荐,避免单点)
- 或:手动加密备份 + 异机导入(实验性 CLI)
不支持因为同步引擎涉及云端凭据流转,需要更长设计周期。
故障排查
| 症状 | 排查 |
|---|---|
| 启用主密码失败 | 检查 keyring 是否可写(Linux 上需 Secret Service) |
| 解锁卡住 | Argon2 第一次派生需 1-2 秒,等等 |
| 反复说密码错 | 输入法可能有问题;试纯英文密码 |
| 想跳过启动锁定 | 暂不支持,违反设计 |