背景
最近一直在用 iOS 的 Safari 上网,发现一些网站密码只存在 LastPass ,但它切换设备要收费,替换它刻不容缓,虽然现在都 2024 年了。
我的需求很简单
抛开安全先不谈,只需要多端同步密码即可,因为有些重要的账号都是需要手机号验证。
我目前密码需要同步的几个端:
- Mac + 谷歌浏览器
- Ubuntu + 谷歌浏览器
- iPhone + Safari 浏览器
- Windows + 谷歌浏览器(偶尔用也要有)
- 安卓 + 谷歌浏览器(基本不用也要有)
实现过程
上网查了资料后,Keepass 满足了我的需求,大概理解了下:
- Keepass 的所有密码是存在一个后缀为 kdbx 的数据库加密文件里。
- 必须有一个正确的主密钥,才能访问和操作 kdbx 内容,主密钥可以是文本密码。
- 各个端使用 Keepass 兼容的图形软件工具,它们能做到添加、编辑、在网站自动填充密码,本质上就是操作 kdbx 文件。
思路
- 所以只要在一个端设置账号密码,其他端同步过去,就能实现共用。
- 也就是实现 kdbx 文件云同步事关键,文件同步我选择使用 OneDrive ,单独申请了个账号,专用存 kdbx 文件,它免费额度有 5G ,根本用不完。
- 主密钥我用的是一个文本密码,记在了脑子里。
最终的同步方案:
- PC + 谷歌浏览器用的 KeepassXC ,它提供浏览器插件,支持识别 URL 写入和填充账号密码。
-
同步文件用的 OneDrive ,KeepassXC 把 kdbx 数据设置在 OneDrive 对应的云文件夹里即可,会自动同步。
- Mac 和 Windows 有现成的图形化软件。
- Ubuntu 我用的是命令行安装,它默认的云文件路径是在 ~/OneDrive ,需要后台运行
onedrive --synchronize
命令才能一直进行同步操作。
- 手机 iOS 我使用了 KeePassium 和 Strongbox ,最终选择了 Strongbox ,原因是 Strongbox 免费版自动填充效果比较好。
- 虽然 KeePassium 和 Strongbox 软件自身都集成了 OneDrive 云同步的设置,但本质上还是第三方授权拉 OneDrive 的数据。
- 我试了下直接用手机装额外的 OneDrive ,直接打开 OneDrive 的文件速度会快一些,也就是说没有用 Strongbox 的云同步功能( KeePassium 也是一样),而是像打开本地文件一样打开 OneDrive 的文件。
结论
- OneDrive 用来同步,需要自己记一下账号密码。
- 不能丢 kdbx 的主密钥,如果你存的密码很重要,建议你把它当加密钱包一样保存。
- 目前我都是免费用这几个工具,KeePassium 和 Strongbox 有进阶版收费,但免费版对我来说很够用。
- 安卓的我用的不多,不过我看大家推荐最多的还是 Keepass2Android ,有需要的可以试一试。
想要实现同款方案的
如果想尝试跟我一样的方案,可以跳到我这篇博客最后面简单看看 使用 Keepass 实现跨平台密码同步