使用Keepass实现跨平台密码同步:详细方案

Published on
Authors
  • avatar
    Name
    套路猿
    Twitter

背景

最近一直在用 iOS 的 Safari 上网,发现一些网站密码只存在 LastPass,但它切换设备要收费,替换它刻不容缓,虽然现在都 2024 年了。

有以下几个端需要同步:

  1. Mac + 谷歌浏览器
  2. Ubuntu + 谷歌浏览器
  3. iPhone + Safari 浏览器
  4. Windows + 谷歌浏览器(偶尔用也要有)
  5. 安卓 + 谷歌浏览器(基本不用也要有)

为什么选择Keepass而不是1Password或LastPass?

在寻找替代1Password和LastPass的过程中,我发现Keepass具有以下优势:

  1. 免费使用:与1Password和LastPass不同,Keepass免费。这对于我需要多设备同步但不想支付高额费用的用户来说,是很理想选择。
  2. 开源安全:Keepass是开源软件,其代码公开透明,相比之下,1Password和LastPass本质是它们的云存储和同步。

实现过程

上网查了资料后,Keepass满足了我的需求,大概理解了下:

  1. Keepass 的所有密码是存在一个后缀为 kdbx 的数据库加密文件里。
  2. 必须有一个正确的主密钥,才能访问和操作 kdbx 内容,主密钥可以是文本密码。
  3. 各个端使用 Keepass 兼容的图形软件工具,它们能做到添加、编辑、在网站自动填充密码,本质上就是操作 kdbx 文件。

思路

  • 只要在一个端设置账号密码,其他端同步过去,就能实现共用。
  • 实现 kdbx 文件云同步是关键,文件同步我选择使用 OneDrive,单独申请了个账号,专用存 kdbx 文件,它免费额度有 5G,根本用不完。
  • 主密钥我用的是一个文本密码,记在了脑子里。

最终的同步方案:

PC + 谷歌浏览器 使用 KeepassXC

  1. PC + 谷歌浏览器用的 KeepassXC,它提供浏览器插件,支持识别 URL 写入和填充账号密码。
  2. 同步文件用的 OneDrive,KeepassXC 把 kdbx 数据设置在 OneDrive 对应的云文件夹里即可,会自动同步。
    • Mac 和 Windows 有现成的图形化软件。
    • Ubuntu 我用的是命令行安装,它默认的云文件路径是在 ~/OneDrive,需要后台运行 onedrive --synchronize 命令才能一直进行同步操作。

手机使用 Strongbox

  1. iOS 我使用了 KeePassiumStrongbox,最终选择了 Strongbox,原因是 Strongbox 免费版自动填充效果比较好。
  2. 虽然 KeePassiumStrongbox 软件自身都集成了 OneDrive 云同步的设置,但本质上还是第三方授权拉 OneDrive 的数据。
  3. 我试了下直接用手机装额外的 OneDrive,直接打开 OneDrive 的文件速度会快一些,也就是说没有用 Strongbox 的云同步功能(KeePassium 也是一样),而是像打开本地文件一样打开 OneDrive 的文件。

ubuntu安装使用命令行版本的OneDrive

安装

OneDrive Mac 和 Windows 跟着官方客户端安装即可 Ubuntu我使用的是命令行版本,建议按照以下安装文档进行安装: https://github.com/abraunegg/onedrive/blob/master/docs/ubuntu-package-install.md

使用

  1. 执行 onedrive 命令,会提示你打开一个网址,然后登录 OneDrive,获得授权码链接,输入到终端里,如果出现4**错误,要考虑是否没安装对版本
  2. 安装完成后,需要先执行 onedrive --synchronize 命令,第一次同步会把 OneDrive 的文件同步到本地。
  3. 之后可以使用 onedrive --monitor 命令,后台一直监控文件变化,考虑加入开机启动,这样密码文件就能一直同步了。
  4. 如果已经连接了一段时间,可以使用 onedrive --reauth 命令,重新同步一次,会与第一步一样,重新登录授权。

结论

  1. OneDrive 用来同步,需要自己记一下账号密码。
  2. 不能丢 kdbx 的主密钥,如果你存的密码很重要,建议你把它当加密钱包一样保存。
  3. 目前我都是免费用这几个工具,KeePassium 和 Strongbox 有进阶版收费,但免费版对我来说很够用。
  4. 安卓的我用的不多,不过我看大家推荐最多的还是 Keepass2Android,有需要的可以试一试。
  5. 本来也想付费用1Password,现在发现它是替换1Password和LastPass的好选择。

工具链接