2016-10-03 76 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