Rapg:基于 TUI 的密钥管理器
Source: Dev.to
我们都有过这种经历。加入一个新项目时,第一件事就是:
“在 Slack 的置顶消息里找
.env文件。”
或者你的磁盘上散落着多个 .env.local 文件,害怕不小心把其中一个提交到 GitHub。
作为开发者,我们知道不应该在磁盘上保存明文密钥,但因为“正规”的企业解决方案往往对本地开发来说太笨重,我们仍然每天这么做。
这就是我创建 Rapg 的原因。
Rapg 是什么?
Rapg 是面向开发者的终端密钥管理器。它弥合了个人密码管理器和 DevOps 密钥存储之间的鸿沟。
你不再管理文本文件,而是把密钥存放在本地安全保险箱中。需要运行应用时,Rapg 会直接把这些密钥注入进程环境。
没有文本文件。没有意外提交。只有代码。
杀手级特性:进程注入
Rapg 的核心理念是 密钥只能存在于内存中。
不需要再去 source .env,只需用 rapg run 包裹你的命令:
# Before: Relying on a file meant to be ignored
$ npm start
# After: Secrets injected on‑the‑fly
$ rapg run -- npm start
运行上述命令时,Rapg 会:
- 解锁你的保险箱(如果未缓存则会询问主密码)。
- 仅解密当前环境所需的密钥(例如
DB_PASSWORD、STRIPE_KEY)。 - 启动你的进程(
npm start),并把这些变量加入其环境。
密钥从不落到磁盘。进程结束后,密钥即被销毁。
现代化的 TUI
CLI 工具不该难用。Rapg 基于 Bubble Tea 构建,提供美观、键盘友好的界面。
你可以:
- 即时搜索 你的密钥。
- 生成 强随机密码。
- 复制 2FA/TOTP 码,无需拿起手机。
- 审计 保险箱,检查密码是否重复使用。
底层实现:银行级安全
对于安全敏感的用户,Rapg 采用 零知识架构:
- Argon2id – 主密码从不存储。Argon2id(RFC 9106)用于派生加密密钥,使暴力破解成本高昂。
- AES‑256‑GCM – 所有数据使用带认证的加密方式,保证机密性和完整性。
- 内存保护 – 使用 memguard 防止敏感密钥被换出到磁盘或被其他进程读取。
高级工具
安全审计
想知道有多少服务在使用 2018 年的老密码吗?
$ rapg audit
⚠️ Reuse Detected! The following passwords are used in multiple places:
...
迁移
从其他工具迁移?可以从 CSV 导入,或导出为 .env(如果你真的需要)。
$ rapg import lastpass_export.csv
试一试
Rapg 是开源的,用 Go 编写。立即安装:
go install github.com/kanywst/rapg/cmd/rapg@latest
初始化你的保险箱,添加第一个密钥,从此不再担心 .env 文件放在哪里。
期待你的反馈!查看仓库,觉得有用就点星,或者如果遇到 bug 请提交 Issue。
