如何在不泄露的情况下备份我的身份文件(SSH/GPG)?
Source: Dev.to
The Story: Paranoia & SSH Keys 🔑
我有一种特定的偏执:害怕丢失我的 SSH 和 GPG 密钥。
如果我的笔记本今天坏了,我将失去对服务器的访问、GitHub 的签名能力以及加密备份的使用权。但备份它们本身就让人感到恐惧。
- 将
id_rsa复制到 USB 驱动器上感觉很冒险(如果我把驱动器丢了怎么办?)。 - 将
~/.ssh上传到 Google Drive 或 Dropbox 则像是一场安全噩梦。
我想要一个折中的方案——一个“数字保险箱”。我想把最敏感的密钥锁在一个文件夹里,这个文件夹在没有密码的情况下在数学上不可能被打开,然后安心地将这个加密的块上传到云端。
这就是我创建 Vaultix 的原因。它不仅仅是为“一般的秘密”而设计——它专门用于成为我的数字身份的最安全传输层。
什么是 Vaultix? 🛡️
Vaultix 是一款用 Go 编写的跨平台命令行工具。它在本机上管理受密码保护的加密文件夹。
设计目标
- 简洁 – 无需复杂的密钥管理,只需一个密码。
- 安全 – 使用 AES‑256‑GCM 加密并通过 Argon2id 派生密钥。
- 隐蔽 – 连保险库内部的文件名也会被加密。
“酷”功能
我不仅仅想要加密;我还想要良好的 开发者体验 (DX)。以下是让 Vaultix 使用起来有趣的原因:
1. 模糊匹配 🪄
我讨厌输入冗长的文件名。如果你有一个名为 super_secret_aws_keys_v2.json 的文件,你不必把整个名字都敲出来:
# This works!
vaultix extract aws
Vaultix 会找到最佳匹配并提取它。
2. 零元数据泄漏 🕵️
如果有人偷走你的笔记本电脑并发现你的保险库,他们甚至不知道 你隐藏了什么。Vaultix 会加密文件内容 以及 文件名。磁盘上的 passwords.txt 会变成类似 3f9a2c1d.enc 的随机字符串。
3. Drop & Go 🗑️
需要一次性使用文件后立即销毁吗?使用 drop 命令。它会为你解密文件供使用,并立即从安全保险库中删除它:
vaultix drop api_keys
使用 Vaultix 在夜间更好地睡眠
我用三条命令备份我的 SSH 密钥:
# 1. 创建一个安全的保险库
mkdir my_identity_backup
cd my_identity_backup
vaultix init
# 2. 添加敏感密钥
cp ~/.ssh/id_ed25519 .
cp ~/.gnupg/private-keys-v1.d/* .
vaultix add id_ed25519
# 3. 验证并同步
vaultix list
# 现在我可以压缩这个 'my_identity_backup' 文件夹
# 并将其上传到 Google Drive 而无后顾之忧。
工作原理(技术细节) 🤓
对于那些安全爱好者(比如我),下面是系统架构。我遵循黄金法则:不要自己实现加密。
| 组件 | 详情 |
|---|---|
| 语言 | Go (1.21+) |
| 加密方式 | AES‑256‑GCM(认证加密) |
| 密钥派生 | Argon2id(抗 GPU 破解) |
| 存储 | 所有数据都保存在目录中的隐藏 .vaultix/ 文件夹中 |
| 密码处理 | Vaultix 永不存储你的密码;密码仅在程序运行时驻留于内存。如果忘记密码,数据将永久丢失(这是一种特性,而非 bug)。 |
快速开始
从 Releases page 下载 Windows、macOS 或 Linux 的二进制文件,或者如果已安装 Go,则从源码构建:
go install github.com/zayan-mohamed/vaultix@latest
初始化金库
cd my_secrets
vaultix init
# 输入一个强密码...
添加文件
vaultix add .env
列出你的安全文件
vaultix list
# 金库中的文件:
# .env
就这样。你的 .env 文件现在已在磁盘上加密。
为什么选择 Go? 🐹
我选择 Go 是因为我想要一个 单一的静态二进制文件,且没有任何依赖。用户无需安装 Python、Node 或 OpenSSL 库就能解密他们的文件。只需下载 vaultix,它就能直接运行。
试一试!
我正在寻找反馈、贡献者以及安全爱好者来尝试破解它(或修复它)。
💻 GitHub:
仓库:Zayan-Mohamed/vaultix – 一个跨平台的 CLI 工具,用于管理受密码保护的加密文件夹。
加密文件夹
- 使用 AES‑256‑GCM 加密,配合 Argon2id 密钥派生。
- 单一二进制文件,无任何依赖。
- 支持 Linux、macOS 和 Windows。
vaultix
跨平台命令行工具,用于管理受密码保护的加密文件夹
功能 •
安装 •
快速开始 •
文档 •
安全性 •
贡献指南
Source:
📖 概览
vaultix 是一款安全、轻量级的 CLI 工具,使用军用级密码学对文件进行就地加密。无需云端、无需服务、无需复杂配置——只为您的敏感文件提供强大的加密。
关键亮点
- 🔒 强加密 – 使用 AES‑256‑GCM 并结合 Argon2id 密钥派生
- 🚀 零依赖 – 单一静态二进制文件,无运行时需求
- 💻 跨平台 – 支持 Linux、macOS 和 Windows
- 🎯 简洁用户体验 – 直观命令,配备智能默认值
- 🔐 无密码存储 – 密码仅存在于内存中
- 📦 可移植 – 加密后的保险库可在所有平台之间互换
✨ 功能
- ✅ 自动加密 – 初始化保险箱后,所有文件会立即加密。
- ✅ 模糊文件匹配 – 无需输入精确的文件名。
- ✅ 默认当前目录 – 少敲键,更多操作。
- ✅ 提取或删除 – 提取…
📄 文档:
如果你觉得它有用,请 在仓库上点一个 ⭐——这会帮助我们很多!
免责声明:虽然我使用了业界标准的库,但请始终备份重要数据!