[英]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 每次我想簽署提交或標簽時都會提示我輸入密碼。
在這個問題上找到了“解鎖我的密鑰”的命令: How to use gpg command-line to check passphrase is correct
您可能需要告訴pinentry
,gpg用來提示輸入密碼的軟件以及提示您輸入密碼的位置。
export GPG_TTY=$(tty)
git commit -S
如果GPG_TTY
,我建議在您的Shell的rc文件中導出GPG_TTY
。
對我來說,取消設置並再次設置簽名密鑰就像一個魅力。
如果您正在更改另一個簽名密鑰或 git 突然停止提示輸入密碼,這將起作用。
// remove signing key
git config --unset user.signingkey
// add new signing key
git config user.signingkey SECRETKEYLONGID
// tell git to automatically sign every commit
git config commit.gpgsign true
// commit as usual
git commit -m "commit message"
Git 說明熱獲取簽名密鑰長 ID。
就是這樣..我希望它能派上用場。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.