使用 Git 签名提交不会要求我提供密码
Signing commits with Git doesn't ask for my passphrase
我试图使用命令 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 每次我想签署提交或标签时都会提示我输入密码。
"unlock my key" 的命令是在这个问题上找到的:How to use gpg command-line to check passphrase is correct
您可能需要告诉 pinentry
软件 gpg 用来提示您输入密码的位置。
export GPG_TTY=$(tty)
git commit -S
如果可行,我建议在您的 shell 的 'rc' 文件中导出 GPG_TTY
。
我试图使用命令 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 每次我想签署提交或标签时都会提示我输入密码。
"unlock my key" 的命令是在这个问题上找到的:How to use gpg command-line to check passphrase is correct
您可能需要告诉 pinentry
软件 gpg 用来提示您输入密码的位置。
export GPG_TTY=$(tty)
git commit -S
如果可行,我建议在您的 shell 的 'rc' 文件中导出 GPG_TTY
。