我正在尝试使用 gpg 提交到 git,我已经使用了我的用户名和令牌,并且它可以在没有任何密码短语的情况下使用 ssh 但不适用于 gpg!
我遇到以下错误
org.bouncycastle.openpgp.PGPException: missing credentials provider
at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyPassphrasePrompt.getPassphrase(BouncyCastleGpgKeyPassphrasePrompt.java:120)
at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyLocator.findSecretKeyForKeyBoxPublicKey(BouncyCastleGpgKeyLocator.java:279)
at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyLocator.findSecretKey(BouncyCastleGpgKeyLocator.java:244)
at org.eclipse.jgit.lib.internal.BouncyCastleGpgSigner.locateSigningKey(BouncyCastleGpgSigner.java:120)
at org.eclipse.jgit.lib.internal.BouncyCastleGpgSigner.sign(BouncyCastleGpgSigner.java:129)
... 33 common frames omitted
我想了解这些事情:
- jgit 需要哪些凭据/配置才能使用 GPG?
- 我们如何发送密码以及如何确保使用缓存的 gpg 密码?
我尝试过以下事情:
- 在
.netrc
机器、用户名和密码中添加了凭据 - 启用
command.setSign(true)
- 添加了签名密钥
command.setSigningKey("KEY")
我有这些设置:
.netrc
machine github.com
login <login>
password <personal_token>
.zshrc
# GPG
export GPG_TTY=`tty`
.gnupg/gpg-agent.conf
default-cache-ttl 28880
write-env-file /Users/[your user]/.gnupg/gpg-agent-info
pinentry-program /usr/local/MacGPG2/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac
gpg.conf
auto-key-retrieve
no-emit-version
default-key <key>
use-agent
no-tty