Docs安全凭据保险库
返回文档
安全

凭据保险库

使用 YeePilot 内置的加密保险库安全地存储和管理 API 密钥、SSH 密钥和令牌

最后更新: 2026年3月1日

YeePilot 内置了加密保险库,用于存储所有敏感凭据 -- API 密钥、SSH 密钥、令牌和密码。保险库在静态存储时保持加密,仅在您明确解锁时才解密。

快速开始

初始化保险库

使用主密码设置保险库:

bash
yeepilot vault init

您将被提示:

  1. 选择解锁方式(密码、PIN、YubiKey 或 YubiKey+PIN)
  2. 设置您的主凭据
  3. 确认凭据

保险库创建后立即可以使用。

检查保险库状态

bash
yeepilot vault status

这显示保险库是否已初始化、锁定或解锁状态、存储的凭据数量以及配置的解锁方式。

存储凭据

添加凭据

bash
yeepilot vault add

您将被提示输入:

  • 名称 -- 描述性标签(例如 "production-db-password"、"aws-api-key")
  • 类型 -- 凭据类型(API 密钥、SSH 密钥、密码、令牌)
  • -- 密钥本身(输入时隐藏)

示例:

bash
$ yeepilot vault add
Name: digitalocean-api-token
Type: API key
Value: ****
Credential stored successfully.

列出已存储的凭据

bash
yeepilot vault list

这显示所有已存储凭据的名称和类型,而不暴露其值:

plaintext
Credentials in vault:
  1. digitalocean-api-token    (API key)
  2. production-db             (password)
  3. deploy-server             (SSH key)
  4. github-pat                (token)

解锁和锁定

解锁保险库

bash
yeepilot vault unlock

您将被提示输入主凭据。解锁后,凭据可在 YeePilot 会话中使用。

会话内解锁和锁定

在交互式 YeePilot 会话中,使用斜杠命令:

plaintext
/unlock              # 使用主密码提示解锁
/unlock mypassword   # 直接使用密码解锁(请谨慎使用)
/lock                # 立即锁定保险库

自动锁定

保险库在一段不活动时间后自动锁定,以在您离开时保护凭据:

yaml
vault:
  auto_lock_duration: 15m    # 15 分钟不活动后锁定(默认)

调整持续时间或禁用自动锁定:

yaml
vault:
  auto_lock_duration: 30m    # 30 分钟后锁定
  auto_lock_duration: 0      # 禁用自动锁定(不推荐)

解锁方式

YeePilot 支持多种解锁方式以匹配您的安全要求:

密码

默认方式。在 vault init 时设置一个强主密码。

bash
yeepilot vault init
# Choose: password
# Enter password: ********

PIN

数字 PIN 用于更快解锁。最适合开发环境。

bash
yeepilot vault init
# Choose: PIN
# Enter PIN: ******

YubiKey

使用 YubiKey 安全密钥进行基于硬件的认证。提供最强的保护,因为没有实际拥有密钥就无法解锁保险库。

bash
yeepilot vault init
# Choose: YubiKey
# Touch your YubiKey when prompted...

YubiKey + PIN

将硬件认证与 PIN 结合实现双因素保护。解锁保险库需要同时拥有物理 YubiKey 和正确的 PIN。

bash
yeepilot vault init
# Choose: YubiKey+PIN
# Enter PIN: ******
# Touch your YubiKey when prompted...

使用凭据

SSH 连接

使用保险库中存储的 SSH 密钥连接到服务器:

bash
yeepilot vault connect

您将看到可供选择的已存储 SSH 密钥列表。YeePilot 使用选定的密钥建立连接,无需将密钥写入磁盘。

AI 提供商密钥

当您在保险库中存储 AI 提供商 API 密钥时,YeePilot 可以在启动会话时自动检索它们,因此您无需在配置文件中保留 API 密钥。

会话内访问

在交互式会话中,如果保险库已解锁,当您要求 AI 执行需要凭据的任务时,它可以引用已存储的凭据。例如:

plaintext
> Deploy the latest release to the production server using the deploy-server SSH key

YeePilot 从保险库中检索 SSH 密钥并将其用于连接,而不会在终端或命令历史中暴露密钥。

凭据轮换

轮换需要定期更新的凭据:

bash
yeepilot vault rotate

这会引导您选择一个凭据并用新值替换它。旧值会被安全覆盖。

暴力破解保护

保险库包含针对暴力破解解锁尝试的保护:

  • 每次失败尝试后,下次尝试前的延迟时间会增加
  • 连续 15 次失败尝试后,保险库可以选择性地清除所有存储的凭据

即使有人获得了您的终端会话访问权限,这也能保护您的密钥。

配置清除行为:

yaml
vault:
  wipe_after_failed_attempts: 15    # 15 次失败后清除(默认)
  wipe_after_failed_attempts: 0     # 禁用清除(改为永久锁定)

**警告:**启用清除功能时,超过失败尝试限制将永久销毁所有存储的凭据。请确保在其他安全位置备份了关键密钥。

配置参考

~/.yeepilot/config.yaml 中的完整保险库配置:

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,这样没有明确认证就不会有凭据可用