我从brew安装了GPG。
brew install gpg
它是gnupg 2 -2.0.30_2。
当我提交时,我得到一条错误消息:
You need a passphrase to unlock the secret key for
user: "Max Mustermann (mycomment) <mm@test.de>"
2048-bit RSA key, ID 1111AAAA, created 2017-01-05
error: gpg failed to sign the data
fatal: failed to write commit object
我使用了以下命令:
gpg --list-secret-keys | grep ^sec
它给我的反馈是:
sec 2048R/1111AAAA 2017-01-05
然后我使用了以下命令:
git config --global user.signingkey 1111AAAA
commit返回了相同的错误消息。
我怎样才能解决这个问题?
9条答案
按热度按时间xxb16uws1#
如果你根本没有收到输入密码的提示,解决方案可能就是安装一个程序来帮助你输入密码,最常见的是pinentry。
所以安装后再试一次也许能让它正常工作。但是如果不能,另一件要做的事情是确保
git
使用/找到正确的GPG程序。现在你真的应该使用gpg2
,所以如果你还没有安装它,请这样做:...并确保它指示您已安装GnuPG版本2+(而不是版本1)。
如果你已经安装了GnuPG 2+和
pinentry
,那么试试这个:......或者,更确切地说:
...然后重试。
您可能还需要停止
gpg-agent
:您无需手动重新启动它-它会在需要时自动重新启动。
**注意:**一些评论者提到修改后需要重新启动--但似乎唯一的影响是导致
gpg-agent
重新启动。所以如上所述手动关闭gpg-agent
应该足够了。ezykj2lf2#
对于在MacOS计算机上遇到此问题的任何人,请尝试以下操作:
brew uninstall gpg
brew install gpg2
brew install pinentry-mac
(如果需要)gpg --full-generate-key
使用算法创建密钥。1.通过执行以下命令获取生成的密钥:
gpg --list-keys
1.在此处设置密钥
git config --global user.signingkey <Key from your list>
git config --global gpg.program /usr/local/bin/gpg
git config --global commit.gpgsign true
1.如果您想将密钥导出到GitHub,请:
gpg --armor --export <key>
并将此密钥添加到GitHub的GPG密钥:https://github.com/settings/keys(包括开始和结束行)如果问题仍然存在:
test -r ~/.bash_profile && echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile
echo 'export GPG_TTY=$(tty)' >> ~/.profile
如果问题仍然存在:
安装https://gpgtools.org,然后按菜单栏中的Sign对您使用的密钥进行签名:键-〉符号
如果问题仍然存在:
转到:您的全局
.gitconfig
文件,在我的情况下是:并修改**.gitconfig**文件 (请确保电子邮件和名称与您在生成密钥时创建的文件相同):xienkqul3#
我收到了同样的错误消息,并发现我的密钥已过期。因此,使用以下命令检查密钥过期可能是个好主意:
gpg --list-keys
如果您的密钥也已过期,您可以使用以下命令调整过期日期:
gpg --edit-key <YOUR_KEY>
然后:
moiiocjp4#
我在macOS上运行
brew upgrade
,它破坏了我在git中的gpg登录,大概是在它更新gpg包的时候。我想有一个更简单的方法可以强制gpg服务正确重启(我想当我升级包的时候,某个正在运行的东西坏了),但我的修复方法很简单:重新启动计算机即可。ycggw6v25#
改为安装GPGSuite,它具有用于生成密钥的GUI。
您可以查看更多详细信息here
py49o6xq6#
如果您在macOS中仍然遇到问题,请打开
~/.gitconfig
并将[gpg]
以下的任何内容更改为program = /usr/local/bin/gpg
t9aqgxwy7#
在我的情况下,用户。signingkey设置错误....复制正确的signingkey,问题解决
evrscar28#
如果在安装Xcode之后发生这种情况,那么git二进制文件可能已经被替换了(这个解决方案假设你使用homebrew来管理git安装)。
症状:
1.系统不会提示您输入密码
1.您的错误消息是
$ git config --global gpg.program
引发错误1.你会看到一个系统git,而不是由homebrew安装的:
在这种情况下,解决方案是安装或重新安装git与homebrew。
别忘了重新启动终端。
8aqjt8rx9#
要解决此问题而不在每次重新启动时终止
gpg-agent
,请执行以下操作:检查是否有
gpg
和gpg-agent
的多个副本:对我来说,
MacGPG2
安装的旧MacBook迁移中有一些剩余的二进制文件。删除这些二进制文件(和符号链接),并再次检查,以确保只有一个副本:
然后最后一次重新启动计算机。
gpg
应正确签名,而无需删除任何内容: