凭据保险库
使用 YeePilot 内置的加密保险库安全地存储和管理 API 密钥、SSH 密钥和令牌
YeePilot 内置了加密保险库,用于存储所有敏感凭据 -- API 密钥、SSH 密钥、令牌和密码。保险库在静态存储时保持加密,仅在您明确解锁时才解密。
快速开始
初始化保险库
使用主密码设置保险库:
yeepilot vault init您将被提示:
- 选择解锁方式(密码、PIN、YubiKey 或 YubiKey+PIN)
- 设置您的主凭据
- 确认凭据
保险库创建后立即可以使用。
检查保险库状态
yeepilot vault status这显示保险库是否已初始化、锁定或解锁状态、存储的凭据数量以及配置的解锁方式。
存储凭据
添加凭据
yeepilot vault add您将被提示输入:
- 名称 -- 描述性标签(例如 "production-db-password"、"aws-api-key")
- 类型 -- 凭据类型(API 密钥、SSH 密钥、密码、令牌)
- 值 -- 密钥本身(输入时隐藏)
示例:
$ yeepilot vault add
Name: digitalocean-api-token
Type: API key
Value: ****
Credential stored successfully.列出已存储的凭据
yeepilot vault list这显示所有已存储凭据的名称和类型,而不暴露其值:
Credentials in vault:
1. digitalocean-api-token (API key)
2. production-db (password)
3. deploy-server (SSH key)
4. github-pat (token)解锁和锁定
解锁保险库
yeepilot vault unlock您将被提示输入主凭据。解锁后,凭据可在 YeePilot 会话中使用。
会话内解锁和锁定
在交互式 YeePilot 会话中,使用斜杠命令:
/unlock # 使用主密码提示解锁
/unlock mypassword # 直接使用密码解锁(请谨慎使用)
/lock # 立即锁定保险库自动锁定
保险库在一段不活动时间后自动锁定,以在您离开时保护凭据:
vault:
auto_lock_duration: 15m # 15 分钟不活动后锁定(默认)调整持续时间或禁用自动锁定:
vault:
auto_lock_duration: 30m # 30 分钟后锁定
auto_lock_duration: 0 # 禁用自动锁定(不推荐)解锁方式
YeePilot 支持多种解锁方式以匹配您的安全要求:
密码
默认方式。在 vault init 时设置一个强主密码。
yeepilot vault init
# Choose: password
# Enter password: ********PIN
数字 PIN 用于更快解锁。最适合开发环境。
yeepilot vault init
# Choose: PIN
# Enter PIN: ******YubiKey
使用 YubiKey 安全密钥进行基于硬件的认证。提供最强的保护,因为没有实际拥有密钥就无法解锁保险库。
yeepilot vault init
# Choose: YubiKey
# Touch your YubiKey when prompted...YubiKey + PIN
将硬件认证与 PIN 结合实现双因素保护。解锁保险库需要同时拥有物理 YubiKey 和正确的 PIN。
yeepilot vault init
# Choose: YubiKey+PIN
# Enter PIN: ******
# Touch your YubiKey when prompted...使用凭据
SSH 连接
使用保险库中存储的 SSH 密钥连接到服务器:
yeepilot vault connect您将看到可供选择的已存储 SSH 密钥列表。YeePilot 使用选定的密钥建立连接,无需将密钥写入磁盘。
AI 提供商密钥
当您在保险库中存储 AI 提供商 API 密钥时,YeePilot 可以在启动会话时自动检索它们,因此您无需在配置文件中保留 API 密钥。
会话内访问
在交互式会话中,如果保险库已解锁,当您要求 AI 执行需要凭据的任务时,它可以引用已存储的凭据。例如:
> Deploy the latest release to the production server using the deploy-server SSH keyYeePilot 从保险库中检索 SSH 密钥并将其用于连接,而不会在终端或命令历史中暴露密钥。
凭据轮换
轮换需要定期更新的凭据:
yeepilot vault rotate这会引导您选择一个凭据并用新值替换它。旧值会被安全覆盖。
暴力破解保护
保险库包含针对暴力破解解锁尝试的保护:
- 每次失败尝试后,下次尝试前的延迟时间会增加
- 连续 15 次失败尝试后,保险库可以选择性地清除所有存储的凭据
即使有人获得了您的终端会话访问权限,这也能保护您的密钥。
配置清除行为:
vault:
wipe_after_failed_attempts: 15 # 15 次失败后清除(默认)
wipe_after_failed_attempts: 0 # 禁用清除(改为永久锁定)**警告:**启用清除功能时,超过失败尝试限制将永久销毁所有存储的凭据。请确保在其他安全位置备份了关键密钥。
配置参考
~/.yeepilot/config.yaml 中的完整保险库配置:
vault:
enabled: true # 启用凭据保险库
start_locked: true # 启动会话时保险库为锁定状态(默认:true)
auto_lock_duration: 15m # 不活动后自动锁定(默认:15m)
wipe_after_failed_attempts: 15 # N 次解锁失败后清除(0 表示禁用)最佳实践
- 使用强主密码 -- 保险库的安全性取决于其解锁凭据的强度
- 启用自动锁定 -- 始终保持自动锁定启用,特别是在共享或生产服务器上
- 生产环境优先使用 YubiKey -- 基于硬件的解锁提供最强的远程入侵防护
- 定期轮换凭据 -- 使用
yeepilot vault rotate按计划更新密钥 - 保留备份 -- 保险库的清除保护是最后手段;始终维护关键凭据的安全备份
- 以锁定状态启动 -- 保持
start_locked: true,这样没有明确认证就不会有凭据可用