我可以使用 keybase.io 签署 git commits 吗?

koj*_*iro 5 git gnupg keybase

我正在设置一台新机器,并且更喜欢将密钥库用于各种 pgp 活动,例如签署提交。我可以运行一个命令

$ keybase pgp sign -m foo > x
$ gpg --verify x 2>&1 | grep -oF 'Good signature'
Good signature
Run Code Online (Sandbox Code Playgroud)

我可以直接用 gpg 签名,但是让 keybase 管理它很方便。那么我可以以某种方式让 git 使用 keybase 吗?

Git 配置似乎没有办法自定义用于签署提交的 gpg 命令。您所能做的就是提供密钥。有什么办法吗?

koj*_*iro 3

感谢Xavier 答案中的链接,我了解到我可以使用 gpg.program 配置覆盖 gpg 程序:

git config --global gpg.program /path/to/something
Run Code Online (Sandbox Code Playgroud)

所以我可以用它来编写一个围绕键库的包装器。

但事实证明,git 对于它的含义非常挑剔somethingGit 期望部分解析该标志产生的输出--fd-status,这会导致在备用文件句柄处gpg输出特殊状态代码。

幸运的是,至少在我的第一遍中,git 不会解析gpg 生成的所有内容,因此我能够模拟它。这是功能性包装器的要点,这是它的核心内容:

git config --global gpg.program /path/to/something
Run Code Online (Sandbox Code Playgroud)