4

我正在尝试使用 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

我想了解这些事情:

  1. jgit 需要哪些凭据/配置才能使用 GPG?
  2. 我们如何发送密码以及如何确保使用缓存的 gpg 密码?

我尝试过以下事情:

  1. .netrc机器、用户名和密码中添加了凭据
  2. 启用command.setSign(true)
  3. 添加了签名密钥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
4

0 回答 0