Git
gpg 未能簽署數據,未能寫入送出對象
我已經搜尋了整個宇宙這個錯誤,但我找不到任何有用的提示。
我使用 keybase 創建了一個密鑰並將我的公鑰添加到 github gpg
我
gpg --list-secret-keys --keyid-format LONG
的是這個-------------------------------- sec rsa4096/7E8*******60B47B 2021-03-06 [SC] [expires: 2037-03-02] 51FBCD0E******************014D4860B47B uid [ultimate] Fatih <********@live.be> uid [ultimate] Fatih <73314940+kgnfth@users.noreply.github.com> ssb rsa4096/15BBF8A123C4AC1B 2021-03-06 [E] [expires: 2037-03-02]
我的
.gitconfig is this
[user] signingkey = 7E8*******60B47B email = 73314940+kgnfth@users.noreply.github.com name = kgnfth [commit] gpgsign = true [gpg] program = gpg
我添加
export GPG_TTY=$(tty)
到我的 .zshrc 文件中每次我執行 git commit -m “first commit” 時,我都會收到此錯誤
error: gpg failed to sign the data fatal: failed to write commit object
我沒有看到簽名密鑰有任何問題我也嘗試將 gpg 更改為 gpg2 但出現相同的錯誤
我不知道我需要你的幫助
謝謝你。
我通過將 gpg-agent 外掛添加到我的 zshrc 配置文件中解決了我的問題。
正如接受的答案所提到的,將 gpg-agent 添加到 zsh 外掛可以解決問題。後來我發現導出 gpg tty 足以讓它正常工作。
將以下行添加到 .zshrc 或 .zprofile(首選)
export GPG_TTY=$TTY
有關更多詳細資訊,gpg 似乎將 pin-entry 過程輸出到其他一些外部源,而不是目前正在使用的終端。TTY將 ref 保存到目前終端,因此將其導出為GPG_TTY解決了這種情況下的問題。