用 KeepassXC 存储 Git 密码

笔者一直使用 KeepassXC 存储自己的各种账户密码,但是 Git 密码却一直存在 KWallet 里,今天就想让 KeepassXC 来存储密码。(虽然鸡蛋放同一篮子里不是什么好习惯,但毕竟 KWallet 不够通用)

先给没有用过或了解过 KeePass 的读者一点点背景说明。KeePass 是一款跨平台的开源密码管理软件,与常见的密码管理软件不同,他的数据库保存在本地(同步的话需要自己找办法实现),问题在于这货是 C#、DotNet 那套写的,离了 Windows 哪儿都不好使。KeePassXC 则是 KeePass 的 C++/QT 版,Windows、Linux、OSX 均有适配。不过本文只适用于 Linux。

笔者没有直接使用 KeePassXC 存储密码的 git-credential-keepassxc,因其有个缺点,需要安装额外的二进制可执行文件,而且不支持 VSCodium。

KeePassXC 本身在 Linux 上提供了 FreeDesktop.Org 保密服务(即 libsecret)集成,故可以采用 git-credential-libsecret,通过 FreeDesktop 提供的接口来读取密码。

首先,安装 git-credential-libsecret(这个因发行版而异);其次,在 Git 里启用 libsecret。

git config --global credential.helper libsecret

最后,在 KeePassXC 的设置里打开 FreeDesktop.Org 保密服务集成。这样 Git 在询问密码后就会把密码保存到 KeePassXC 里。

注意,FreeDesktop.Org 保密服务集成的条目与其他条目不同,有特殊的属性项。建议分开,用单独的文件夹存放。同时 VSCodium 与 openSUSE OBS 也会使用 libsecret 来保存信息。

发表评论

您的电子邮箱地址不会被公开。