☰
密钥与令牌安全:pi-skills的API Key与OAuth凭证安全存储最佳实践
2026/10/3 7:13:21 网站建设 项目流程

密钥与令牌安全:pi-skills的API Key与OAuth凭证安全存储最佳实践

【免费下载链接】pi-skillsSkills for pi coding agent (compatible with Claude Code and Codex CLI)项目地址: https://gitcode.com/gh_mirrors/pi/pi-skills

pi-skills是面向 pi coding agent(兼容 Claude Code、Codex CLI 等)的一组技能包,包含网页搜索、浏览器自动化、Google 全家桶和语音转写等能力。其中不少技能需要API Key或OAuth 凭证才能工作,本文带你掌握这些密钥与令牌的安全存储最佳实践,避免最常见的泄露隐患。

先获取项目(如需要 clone):

git clone https://gitcode.com/gh_mirrors/pi/pi-skills

先搞懂:pi-skills 里的 2 种凭证形态

理解存储方式之前,先看清 pi-skills 到底用了哪些凭证。整个仓库的密钥管理只有两类模式,见 README.md 中的技能清单:

凭证类型使用技能存储方式涉及文件
🔑 API Key(订阅令牌)brave-search、transcribe环境变量(或本地 config 文件)brave-search/SKILL.md、transcribe/SKILL.md
🪪 OAuth 客户端凭证 + 访问令牌gccli、gdcli、gmcli本地 JSON 文件(~/.xxx/目录)gccli/SKILL.md、gdcli/SKILL.md、gmcli/SKILL.md

两种模式的安全性要点不同,下面逐一拆解。

API Key 怎么存:环境变量是首选

1️⃣ Brave Search:写入 Shell 配置文件

brave-search/SKILL.md 推荐的官方做法,是把 Key 写到 shell 配置文件(~/.profile,zsh 用户为~/.zprofile):

export BRAVE_API_KEY="your-api-key-here"

运行脚本时,search.js 会从环境变量中读取BRAVE_API_KEY,未设置时会直接报错退出,而不会尝试读取任何本地文件——这正是推荐环境变量的原因:密钥不落盘,不随项目目录被提交或同步。

2️⃣ Groq 转写:环境变量或本地 config 文件

transcribe 技能同样优先GROQ_API_KEY环境变量,写入~/.zshrc或~/.bashrc后执行source生效。它还提供了一个备选方案:

echo 'GROQ_API_KEY="your-key"' > config

transcribe.sh 开头会优先加载同目录下的config文件,再检查环境变量。

⚠️注意:config文件是明文密钥,绝对不要放进版本库或同步盘,建议创建后立即收紧权限(chmod 600 config)。

OAuth 凭证怎么存:三个 Google 技能的模式

gccli(日历)、gdcli(云盘)、gmcli(Gmail)走的是标准的OAuth 桌面应用流程,涉及两个文件:

  1. 客户端凭证:在 Google Cloud Console 创建 "Desktop app" 类型的 OAuth 客户端并下载 JSON,然后执行一次导入,例如:
gccli accounts credentials ~/path/to/credentials.json
  1. 账户令牌:再执行gccli accounts add <邮箱>完成浏览器授权(无浏览器环境可用--manual手动模式),令牌会持久化到本地。

三个技能的数据落盘位置完全一致,见各自的 SKILL 文档:

技能客户端凭证账户令牌文档位置
Google 日历~/.gccli/credentials.json~/.gccli/accounts.jsongccli/SKILL.md
Google 云盘~/.gdcli/credentials.json~/.gdcli/accounts.jsongdcli/SKILL.md
Gmail~/.gmcli/credentials.json~/.gmcli/accounts.jsongmcli/SKILL.md

这套设计的优点:凭证统一放在用户主目录下的技能专属目录,与项目代码物理隔离——即使把技能软链接到项目里(如.claude/skills/),密钥也不会混进代码仓库。

5 条最佳实践清单(照做即可)

✅密钥永不入仓:所有凭证文件都在~/.gccli/、~/.gdcli/等家目录中,与 clone 下来的技能目录分离;transcribe/config这类本地文件要加入.gitignore。

✅收紧文件权限:对明文凭证执行chmod 600,只允许属主读写。

✅最小授权:Google 技能在 OAuth 受众中只添加自己实际使用的 Gmail 地址(测试用户),不要添加无关账号。

✅慎用 Cookies 导出工具:browser-tools 提供了 browser-cookies.js,它会把当前页面的 Cookie 值直接打印到终端(含会话令牌)。请只在本地排查登录问题时使用,不要把输出粘贴到日志、截图或聊天记录中。

✅泄露即轮换:API Key 泄露到公开仓库时,第一时间在提供方控制台吊销旧 Key 并重新生成;OAuth 令牌同理,可删除accounts.json中的对应账户并重新accounts add授权。

常见问题

问:把 API Key 硬编码在脚本里行不行?

不建议。硬编码的密钥容易随代码提交、分享而泄露。pi-skills 的全部技能都遵循"运行时从环境变量读取"的模式(如 search.js 检查BRAVE_API_KEY),这是更安全也更便于轮换的方式。

问:多台机器如何同步凭证?

不要同步credentials.json/accounts.json这类令牌文件。客户端凭证(下载的 JSON)可以复制,但访问令牌建议在新机器上重新走一次授权流程。

问:如何确认哪些技能需要配置?

查看 README.md 的 Requirements 部分即可:brave-search 和 transcribe 需要 API Key,三个 Google 技能需要 OAuth 凭证,其余技能(如 youtube-transcript、vscode)无需任何密钥。

小结

pi-skills 的凭证安全模型很清晰:API Key 走环境变量,OAuth 凭证落家目录专属文件。只要守住"密钥不入仓、权限收紧 600、最小授权、泄露即轮换"这几条底线,就能安全地享受 AI 编码代理带来的生产力。

【免费下载链接】pi-skillsSkills for pi coding agent (compatible with Claude Code and Codex CLI)项目地址: https://gitcode.com/gh_mirrors/pi/pi-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询