随着 LastPass 对免费用户设定的最新限制,包括我在内的一大批白嫖用户面临着移动端或 PC 端无法访问的困难。于是最近终于下定决心寻找 LastPass 的替代品,最好要是开源软件,并且能自己管理、同步数据。这样的选项并不多,最终我选择了 KeePass。
之前 LastPass 为免费用户提供的功能主要有:
- 密码跨设备同步
- 浏览器端密码自动填充,自动提示添加
- 手机端密码自动填充、自动提示添加
经过一番查找,同时满足开源、自己管理数据两个条件的成熟密码管理软件共有两个:KeePass 和 BitWarden。
对 BitWarden 的考虑
首先值得肯定的是,BitWarden 作为商业化运营的软件,官方提供的软件集成度和丰富性相对 KeePass 都要高很多;因为后者除了官方桌面客户端以外,其它功能(包括同步、移动客户端、浏览器插件)都是靠第三方插件和软件实现的。
BitWarden 的开源程度也比较高,提供了客户端的源代码和自己托管服务端的选项。但我也发现了一些问题:
- 自己托管服务端需要启动 10+ 个 Docker 容器,其中包含独立的 Microsoft SQL Server,因而最低配置要求也较高,内存需要 2GB 以上。
- 他们应该是直接提供了官方服务端,实际上个人托管的话,一个 SQLite 数据库也就足够了。
- 更新(2021.4.12):GitHub 上有第三方提供的轻量级服务端,可以兼容官方客户端 API,比较适合自行部署。
- 自己的服务端环境依然需要依赖 BitWarden 提供的中心服务器。
- 部分付费功能,即使自行托管服务端,依然需要购买付费套餐,通过验证后才能解锁。
因此,最终还是没有选择 BitWarden 的方案。对于不喜欢折腾的用户,可能直接购买一个 BitWarden 的付费套餐会比较划算,毕竟 $10/年的价格相对其它竞品很有优势。
选择 KeePass 方案
最终决定迁移到 KeePass,经过一番对比,采取了以下软件组合:
- 桌面客户端:KeePass 官方版
- 功能完善,支持各种格式导入/导出、自动填充、多语言等
- 通过插件扩展机制,可以支持更多同步方式、第三方集成等功能
- 使用 .Net 编写,通过 Mono 可以支持 macOS 和 Linux 下运行
- 浏览器端:Kee 插件
- Android 移动端:KeePass2Android (KP2A)
- 开源,功能完善
- 针对不需要软件内置同步功能的用户,有单独的 Offline 版本(不申请网络权限)
- 同步:方案较多,比较常用的是网盘同步法
- 借助 Dropbox、Google Drive、Microsoft OneDrive、百度网盘等客户端,将数据库文件夹映射到本地目录,然后使用桌面客户端直接将数据库保存同步,无需插件。
- Android 客户端本身也支持部分网盘直接同步,上传、下载数据库文件。
由 LastPass 迁移到 KeePass 也很简单。以 Chrome 浏览器插件为例,插件登陆后,在菜单中 “Advanced > Export > LastPass CSV File” 可以导出 CSV 格式的密码文件。然后在 KeePass 客户端中新建一个 Database,然后在 “File > Import…” 下拉找到 LastPass CSV 即可导入之前的网站名称、账号、密码、URL 信息。
时不时来拜牛一下