如何在 git 提交签名 commit 时不用输入密码
1 min read
描述
在使用 git 提交经过 GPG 签名的 commit 时,总是需要输入密码。
通过以下步骤可以把密码缓存到内存中。
步骤
- 启用缓存:
echo -e '\nallow-preset-passphrase' >> ~/.gnupg/gpg-agent.conf
- 重启 gpg-agent:
gpg-connect-agent reloadagent /bye
- 列出自己的钥匙柄(Keygrip):
gpg --list-secret-keys --with-keygrip
输出如下:
sec rsa3072 2024-03-26 [SC]
0E74F8A5B4DEC1A2438BBA99B9FFC9D459B25AAB
Keygrip = 581BCFFCADF4B32D352CBA8364D5B32102348BAB
uid [ultimate] example <[email protected]>
ssb rsa3072 2024-03-26 [E]
Keygrip = 32883E610AEF2CDC1D27F94B2B893D5E18E33052
- 通过 gpg-preset-passphrase 把密码缓存到内存中:
/usr/lib/gnupg/gpg-preset-passphrase --preset 581BCFFCADF4B32D352CBA8364D5B32102348BAB
--preset
的参数是上一步输出中,sec 里面的 Keygrip。