gpgがデータ署名に失敗し、コミットオブジェクトを書き込めませんでした。

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 <[email protected]>
ssb   rsa4096/15BBF8A123C4AC1B 2021-03-06 [E] [expires: 2037-03-02]

私のもの.gitconfig is this

[user]
        signingkey = 7E8*******60B47B
        email = [email protected]
        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に変更してみましたが、同じエラーが発生しました。

助けが必要かどうかわからなかった

ありがとうございます。

ベストアンサー1

許可された回答によると、gpg-agentをzshプラグインに追加すると問題が解決します。後でエクスポートするGPG_TTYだけで十分であることがわかりました。

.zshrcまたは.zprofileに次の行を追加します(優先)。

export GPG_TTY=$TTY

さらに詳細には、gpgは現在使用されている端末以外の外部ソースにピン入力プロセスを出力するようです。テレタイププライター現在の端末への参照を保存して、次のようにエクスポートします。GPG_TTYこの場合、問題は解決されました。

おすすめ記事