TL;DR

如果你有一台稳定的虚拟服务器 / VPS,使用 Docker 自建 Vaultwadren 依然是现在最好的选择,在跨平台设备上都拥有极佳的使用体验。

不想花费过多成本自托管服务、且难以信赖第三方密码管理器托管服务(如:1PassWord, Bitwarden1, Lastpass, Enpass 等),那么 KeePassXC 也是较好的选择。

KeePassXC 是完全的本地优先理念,密码数据库保存在加密的单个 KDBX 文件中,我们可以通过任何「安全」的方式同步这个 KDBX 文件。

KeePassXC 安全吗?

初始化数据库

安装 KeePassXC

官网下载页面 安装 Windows、macOS 或 Linux 的客户端。

创建密码库

首次运行 KeePassXC 会引导我们创建一个新的数据库,仅需几步:

  1. 输入名称、描述
  2. 数据库格式选择 KDBX 4(默认)
  3. 解密时间一般不需要修改
  4. 输入主密码(这个很重要,复杂密码要记好)
  5. 选择使用 密钥文件Yubikey 挑战/应答 (challenge-response)保护我们的主密码(可选)
  6. 选择路径保存数据库文件
  7. 后续在数据库设置中仍然可以修改这些项目

保存数据库

尽管上面的步骤 5 不是必须的,但是博主还是很建议设置一下。

  1. 密钥文件可以随机生成或者自行设置内容,一定要 妥善保存它,丢失后将无法访问数据库;

  2. 设置 Yubikey 的挑战/应答:安装 Yubico Authenticator for Desktop 后打开,插入 Yubikey 选择槽位–>短按/长按2–>挑战/应答

添加 Yubikey 挑战/应答

点击生成随机密钥(也可以填入自己的密钥)

生成挑战/应答密钥

如果我们有 多枚 Yubikey,请将这个密钥复制,对其他的 Yubikey 重复上述操作(填入上面复制的密钥)。因为仅用 1 枚 Yubikey 保护的方式并不安全,很容易遗失或者损坏导致把我们自己锁在密码库之外。

另外,由于每一枚 Yubikey 的序列号是唯一的,确保我们每次解锁、保存、锁定数据库的过程中始终使用同一枚3 Yubikey。

现在我们的第一个 KeePassXC 数据库就创建好了,如果需要管理多个角色和组织还可以创建多个数据库进行分离管理(可选)。

自建服务的好处就是数据完全由自己掌握,此前,我将 Docker 部署的 Vaultwarden 数据打包后备份在硬盘里。2 年后,发现 VPS 已经过期了,所以我将把 Vaultwarden 密码库导入到 KeePassXC 中。

导出密码库 JSON

在 WSL2 下将 Vaultwarden 服务重新运行起来,然后登录网页端,选择密码库,导出为 JSON 格式。

导入 Bitwarden 密码

在 KeePassXC 菜单里选择导入,类型选择 Bitwarden(JSON)4

从 Vaultwarden 导入

浏览器集成

支持 Google Chrome, Chromium, Firefox, Edge, Brave, Tor 等浏览器,安装d对应的浏览器拓展,在 KeePassXC 应用程序设置–>浏览器集成中开启对应的浏览器即可。

同步

KeePassXC 写入硬盘的数据库始终加密,我们可以将数据库文件存储通过云盘或 WebDAV 同步,最好选择带版本历史备份的,这样确保我们的密码库可以一直被自己访问。

完成,享受我们新的密码管理器吧!

参考内容:


  1. 此处指 Bitwarden 官方服务  ↩︎

  2. 我的 Yubikey 短按槽位有其他应用,所以选择了长按槽位 ↩︎

  3. 在数据库的解锁、保存和锁定操作中,请始终使用同一枚 Yubikey。只有在完成当前操作(即数据库处于锁定状态)之后,才能更换另一枚 Yubikey,进行下一次的解锁。 ↩︎

  4. 如果导出的是加密 JSON,请选择 Bitwarden(JSON 加密)并输入密码 ↩︎