使用Git签署提交并不会要求我提供密码

时间:2018-04-03 12:53:01

标签: git gnupg sign gpg-agent

我尝试使用命令git commit -S签署我的提交但是在没有提示我的GPG密钥的密码的情况下失败了。

错误是:

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

我注意到如果我在git commit -S之前运行以下命令:

gpg -o /dev/null --local-user MY_KEY_ID -as <(echo 1234) && echo "The correct passphrase was entered for this key"

...一切正常,我的提交已正确签名。我认为这是因为我的密码被缓存了,但这不是我期望的行为。

我希望Git每次我想签署提交或标签时都会提示我的密码。

解锁我的钥匙的命令&#34;在这个问题上找到了:How to use gpg command-line to check passphrase is correct

1 个答案:

答案 0 :(得分:7)

您可能需要告诉pinentry,gpg用于提示您输入密码的软件,提示您的位置。

export GPG_TTY=$(tty)
git commit -S

如果有效,我建议您在shell的'rc'文件中导出GPG_TTY

gpg-agent documentation regarding GPG_TTY