如何在不泄露的情况下备份我的身份文件(SSH/GPG)?

发布: (2026年1月8日 GMT+8 01:13)
7 min read
原文: Dev.to

Source: Dev.to

The Story: Paranoia & SSH Keys 🔑

我有一种特定的偏执:害怕丢失我的 SSHGPG 密钥。

如果我的笔记本今天坏了,我将失去对服务器的访问、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:

GitHub logo

仓库:Zayan-Mohamed/vaultix – 一个跨平台的 CLI 工具,用于管理受密码保护的加密文件夹。

加密文件夹

  • 使用 AES‑256‑GCM 加密,配合 Argon2id 密钥派生。
  • 单一二进制文件,无任何依赖。
  • 支持 Linux、macOS 和 Windows。

vaultix

Release
Go Version
License
Platform
Encryption
Build Status

跨平台命令行工具,用于管理受密码保护的加密文件夹

功能
安装
快速开始
文档
安全性
贡献指南

Source:

📖 概览

vaultix 是一款安全、轻量级的 CLI 工具,使用军用级密码学对文件进行就地加密。无需云端、无需服务、无需复杂配置——只为您的敏感文件提供强大的加密。

关键亮点

  • 🔒 强加密 – 使用 AES‑256‑GCM 并结合 Argon2id 密钥派生
  • 🚀 零依赖 – 单一静态二进制文件,无运行时需求
  • 💻 跨平台 – 支持 Linux、macOS 和 Windows
  • 🎯 简洁用户体验 – 直观命令,配备智能默认值
  • 🔐 无密码存储 – 密码仅存在于内存中
  • 📦 可移植 – 加密后的保险库可在所有平台之间互换

✨ 功能

  • 自动加密 – 初始化保险箱后,所有文件会立即加密。
  • 模糊文件匹配 – 无需输入精确的文件名。
  • 默认当前目录 – 少敲键,更多操作。
  • 提取或删除 – 提取…

📄 文档:

如果你觉得它有用,请 在仓库上点一个 ⭐——这会帮助我们很多!

免责声明:虽然我使用了业界标准的库,但请始终备份重要数据!

Back to Blog

相关文章

阅读更多 »

装饰性密码学

请提供您希望翻译的具体摘录或摘要文本,我才能为您进行翻译。

构建安全的密码管理器

概述 本项目是一个使用 Python 和 Tkinter 构建的安全桌面密码管理器。它在本地存储和管理凭证,采用强加密和……