我的笔记本电脑上有 Lubuntu,里面有一个keepassxc
包含密码的数据库。我通过 rsync 在闪存驱动器上进行了备份。
我也想在工作中的 Android 手机和 Windows 机器上使用相同的数据库。
使数据库同步(实际)并在所有这些设备上使用它的最有效和安全的方法是什么?
现在我想到了一个麻烦的解决方案。每天带着同步数据库的 flash 上班,在 Android 手机上再备份一份。有什么更好的解决方案吗?
我的笔记本电脑上有 Lubuntu,里面有一个keepassxc
包含密码的数据库。我通过 rsync 在闪存驱动器上进行了备份。
我也想在工作中的 Android 手机和 Windows 机器上使用相同的数据库。
使数据库同步(实际)并在所有这些设备上使用它的最有效和安全的方法是什么?
现在我想到了一个麻烦的解决方案。每天带着同步数据库的 flash 上班,在 Android 手机上再备份一份。有什么更好的解决方案吗?
还有另一种选择。Syncthing 可在 Linux、Windows、Android 或 MacOS 上运行。您可以自动在任何或所有平台上保持任何内容的最新版本。当然,这会产生开销。似乎对 keepassxc 来说效果很好,而且您有很多选择。
此选项的最大优势在于,除了自动之外,一个解决方案可在任何地方使用。它可以设置为仅在本地网络上工作,甚至可以设置为备份手机上的所有照片。
Syncthing 具有 GUI 界面,大部分情况下设置起来都很简单,设置好要在节点间链接的目录后,只需将文件放入这些目录中即可。Keepassxc 将直接从其中一个目录中运行,因此更新是透明的。如果 Keepassxc 上的同步失败,Syncthing 会将失败的副本存储在具有唯一名称的目录中,您可以在以后使用 Keepassxc 合并它。
最简单、最安全的解决方案是使用 ssh 建立一台服务器/服务,
sftp
然后rsync
使用 ssh 密钥或类似方法与其同步。该位置将是 DB 的主服务器。我会为每个客户端生成ssh 密钥对。即使它们包含密码,也会自动加载它们,这样更安全。你应该为每个设备设置不同的密钥。
在打开/加载 KeePassXC 之前,只需将其同步到您的客户端即可。在某些时期,当您的数据库关闭时(例如,您锁定屏幕),您会从客户端同步到主服务器。在会话结束时,您可以创建最终同步,将最新的 KeePassXC 数据库放入其中,然后设备继续关闭。
您应该始终保留备份,以防同步失败。我会在每个设备上都备份。
编辑详细信息:
在 Linux 上
secret-tool
在 Windows 上
msys2
或WSL2
使用 openssh 和 rsync,就像在 linux 上一样在 Android 上
使用 WebDAV,您可以读取/写入互联网服务器上的文件(即https://example.com/remote.php/dav/files/john.doe/mydatabase.kdbx)。这样,在线服务器上的在线 KDBX 数据库文件就会更新,而不是本地文件。
Android 应用程序“Keepass2Android”和 keepass(.info) 应用程序支持 WebDAV,但 KeepassXC 不支持。
对于 KeepassXC,您需要一个下载/上传客户端,以使本地文件和在线服务器文件保持同步。
如果您想要自行托管文件并拥有在线服务器,您可能需要安装 nextcloud。Nextcloud 在更改后会保留每个数据库版本(备份)。否则,您可以使用 google drive、onedrive、dropbox 或类似产品。我认为它们支持 WebDAV,并且肯定有适用于所有操作系统的同步客户端 - 如果您不介意将密码数据库托管在那里。
我不是安全专家,但我认为通过加密的 TLS 连接 (https) 保存加密的数据库数据非常安全。对于工作,我宁愿使用带有 WebDAV 的 Keepass,而不是带有本地 kdbx 副本的 KeepassXC。