Rapg:基于 TUI 的密钥管理器

发布: (2026年1月20日 GMT+8 20:19)
4 min read
原文: Dev.to

Source: Dev.to

我们都有过这种经历。加入一个新项目时,第一件事就是:

“在 Slack 的置顶消息里找 .env 文件。”

或者你的磁盘上散落着多个 .env.local 文件,害怕不小心把其中一个提交到 GitHub。

作为开发者,我们知道不应该在磁盘上保存明文密钥,但因为“正规”的企业解决方案往往对本地开发来说太笨重,我们仍然每天这么做。

这就是我创建 Rapg 的原因。

Rapg 是什么?

Rapg 是面向开发者的终端密钥管理器。它弥合了个人密码管理器和 DevOps 密钥存储之间的鸿沟。

你不再管理文本文件,而是把密钥存放在本地安全保险箱中。需要运行应用时,Rapg 会直接把这些密钥注入进程环境。

没有文本文件。没有意外提交。只有代码。

Demo

杀手级特性:进程注入

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_PASSWORDSTRIPE_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。

👉 GitHub Repository

Back to Blog

相关文章

阅读更多 »

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...