2016-10-03 33 views
12

当我做git commit -a -S -m "Commit Message",我得到这个错误:Git不会问我的GPG密码和失败,我的承诺

You need a passphrase to unlock the secret key for 
user: "Username (Gpg Key) <email-id>" 
2048-bit RSA key, ID 2487BE7C, created 2016-10-03 

error: gpg failed to sign the data 
fatal: failed to write commit object 

不过,它甚至不要求/提示我密码时,我提交。那么,在使用gpg的-S标志时,如何以及在哪里输入密码?

+0

确定GPG可以读取输入?如果stdin被关闭,你会看到上面的错误信息。如果git命令没有在交互式shell中运行,那么您可能需要运行gpg-agent才能处理密码输入。 –

+0

@ G.Sliepen可以告诉你如何启动它? – Dawny33

回答

15

我有类似的事情。我有gpg和gpg2二进制文件,都指向GPG版本2.0.30。我没有被提示输入我的密码。

在您的bash配置文件(我做到了我的.zshrc文件)添加以下行:

export GPG_TTY=$(tty)

+0

非常感谢,这对我在macOS上的bash很有用。 – gpanda

1

如果您使用的是OSX。这似乎是一个GPG更新(酿造)变更为GPG的位置gpg1,你能改变的Git中查找GPG二进制:

git config --global gpg.program gpg1 

this medium blog post

+0

对我来说,它仍然是gpg,但它不会要求输入密码并失败。任何其他建议? – DiegoRBaquero