kyvault-ops · v2.6.0 · 2026-10-26 · sha256 e4125433d5c6b375

kyvault-ops v2.6.0A

Immutable. This exact content never changes and is served at /api/v1/blob/e4125433d5c6b375.

---
name: kyvault-ops
version: 2.6.0
description: 使用 kyvault (或快捷短命令 ky) 在本地与 GitLab 团队环境中端对端管理加密 API Key、服务器资产台账与多 Profile 凭证。支持 Claude、Codex、Gemini 与 Hermes 全自动读写与子进程安全注入。
license: MIT
author: webkubor
category: security
platforms: [linux, macos]
---

# 🛡️ Kyvault 密钥与资产台账端对端运维指南 (kyvault-ops)

`kyvault` 是本地加密凭证台账与 Git 密文同步工具,面向开发者和本地 AI Agent。文件后端使用 AES-256-GCM;GitLab 同步、API 检查和升级会联网。早期 Auth Guard 读取公开 SSH `.pub` 派生 AES key,不验证私钥持有;远程 Agent 的逐条授权由实验性的 `ky broker`(OpenSSH forced-command)承担,主设备签名审批与自动轮换尚未实现。

## 1. 核心操作命令

Agent (Claude / Codex / Gemini / Hermes) 在需要读取或管理密钥时,应直接执行原生命令(或快捷短命令 `ky`):

```bash
# 1. 查看密钥目录元信息(只出元信息与脱敏 last4,绝不暴露明文)
kyvault list                                           # 或 ky list

# 2. 注入子进程环境变量执行命令(首选,零明文回显,不落盘)
kyvault run --env TOKEN=secret://platform/key_name -- <command>

# 3. 读取特定密钥的明文(仅在必须写配置文件等无法注入的环境使用)
kyvault get secret://platform/key_name

# 4. 写入/更新一个密钥(支持从 stdin 读避免暴露在 ps 进程列表)
kyvault set secret://platform/key_name "<value>" --kind "API Key"
echo "<value>" | kyvault set secret://platform/key_name -

# 4b. 长密钥 / 多行 PEM 走文件,别塞 argv(明文会进 ps 与 shell history)
kyvault set secret://platform/key_name - --file /path/to/key.pem --kind "Private Key"
# 有 BEGIN 没配对的 END 会被拒收(看着像被截断);确认无误再加 --force

# 5. 校验密钥有效性与余额(验证通过自动同步审计元信息至 meta.json)
kyvault check <platform> <key_name>
kyvault check email <key_name>      # 邮箱授权码 / 应用专用密码:IMAP 登录验证(不是 HTTP API)

kyvault master-key          # 显示路径、0600 权限与脱敏指纹
# 注意:Auth Guard 目前仅为旧版兼容包装;公开 SSH .pub 会被用作派生材料,未验证私钥持有。
# 它不是有效的密库保护或 Agent 身份认证。不要向远程 Agent 传播 master.key。

# 7. Auth Guard 旧版兼容管理(不构成 SSH 私钥保护)
kyvault auth status         # 查看旧版守卫配置;不证明持有 SSH 私钥
# auth setup / auth add 旧格式默认停用;仅兼容迁移时设置 KYVAULT_ALLOW_INSECURE_LEGACY_AUTH=1

# 8. 团队 GitLab 密钥库同步与状态
kyvault gitlab status       # 查看本地与远端密文同步状态及 master.key 安全检查
kyvault gitlab sync         # 自动 pull rebase 后 push 推送最新密文
kyvault gitlab auth         # 当前会用哪把凭证(KY_GITLAB_TOKEN / glab 配置 / glab CLI)
# 本机 glab 已登录时无需再抄 PAT:init --remote 会直接复用 glab 登录态建私有库

# 9. 本地极客 Web GUI 与引导向导
kyvault add                 # 浏览器录入:去空格 → 找旧条目 → 先验证(IMAP / 平台接口),通过才写库
kyvault add --email x@163.com --login   # 邮箱登录密码:两次输入核对;一个邮箱只留一条,新的覆盖旧的
kyvault ui                  # 启动本地暗黑风极客 Web GUI(自动唤起浏览器,地址带一次性随机 token)
kyvault wizard              # 终端交互式分类引导向导(规整化命名)

# 10. 操作审计(谁、什么时候、读过/改过哪条 —— 只记元信息)
kyvault audit                       # 最近 30 条
kyvault audit --action get --limit 50   # 只看读取行为
kyvault audit --actor alice --json  # 按操作人过滤,机器可读
# 操作人默认取 KY_ACTOR → 库内 git user.name → $USER;也可每次 --as <名字>

# 11. 多账户(profile)体系:一个账号 = 一组凭据
kyvault profile add work --platform github --username alice --org acme --link secret://github/pat
kyvault profile list                # 列出账号,标出当前账号
kyvault profile use work            # 切换当前账号
kyvault run --profile work -- npm run deploy   # 整组注入,变量名 = ref 名大写

# 12. 只读托管面板(仅元信息,可放静态托管)
kyvault panel --out panel.html      # 账号 / 条目 / 计数 / 最近审计;无明文、无密文、无 last4
```

---

## 2. 统一资产与台账命名规范 (SSOT Schema)

### A. 平台与 API Key 凭证 (Platform API Keys)
路径格式:`secret://<platform>/<key_name>`
* `secret://deepseek/main` ➡️ DeepSeek API Key
* `secret://openai/coding` ➡️ OpenAI 编程专用 Key
* `secret://github/personal-pat` ➡️ GitHub 个人访问令牌 (PAT)
* `secret://gitlab/deploy-token` ➡️ GitLab 部署令牌
* `secret://cloudflare/api-token` ➡️ Cloudflare API Token

### B. 账号与密码凭据 (Accounts)
路径格式:`secret://account/<platform>/<username>`
* `secret://account/github/webkubor@gmail.com` ➡️ GitHub 密码
* `secret://account/apple/webkubor@163.com` ➡️ Apple ID 密码

### C. 服务器与资产台账 (Server Ledger)
路径格式:`secret://server/<host>/[root-password|ip|port]`
* `secret://server/prod-hk/root-password` ➡️ 香港生产机 SSH 密码
* `secret://server/gpu-box/ip` ➡️ 局域网 GPU 服务器 IP

### D. CLI 客户端多 Profile 凭证 (CLI Multi-Tokens)
路径格式:`secret://cli/<cli_name>/<profile>`
* `secret://cli/gh/main` ➡️ GitHub CLI 主账号 Token
* `secret://cli/studio-cli/test-user` ➡️ 创作中台测试租户凭证

---

## 3. Agent 行为刚性准则 (Golden Rules)

1. **先查库,不问用户**:遇到任何需要 Token、API Key、密码的场景,先执行 `kyvault list`。库里有就直接用;确认没有才开口问用户。
2. **优先注入,不取明文**:优先使用 `kyvault run --env TOKEN=secret://... -- <cmd>` 单向注入子进程环境变量,绝不回显明文。
3. **失效必改,刚性覆写**:遇到 401 或 Token 过期,立即主动使用 `kyvault set` 覆写新值,严禁保留失效旧凭据或盲目重试。
4. **master.key 绝不上云**:`master.key` 与 `master.key.enc` 是解密根凭据,绝对禁止暂存或提交到 Git 仓库。