簡體   English   中英

使用 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 每次我想簽署提交或標簽時都會提示我輸入密碼。

在這個問題上找到了“解鎖我的密鑰”的命令: 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

有關GPG_TTY gpg-agent文檔

對我來說,取消設置並再次設置簽名密鑰就像一個魅力。

如果您正在更改另一個簽名密鑰或 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM