👻
pinentryを用いたGitのGPG署名ができなくなった際の対処法
自分はpinentry-macとpinentry-touchidを利用して git commit
時にGPG署名を行っているのだが、ある日から突然エラーが出るようになってしまった。
❯ git commit -m "hoge"
error: gpg failed to sign the data:
[GNUPG:] KEY_CONSIDERED *** *
[GNUPG:] BEGIN_SIGNING H10
gpg: signing failed: No pinentry
[GNUPG:] FAILURE sign ***
gpg: signing failed: No pinentry
fatal: failed to write commit object
No pinentry
と言われているので、パス関連かなとあたりをつけて ~/.gnupg/gpg-agent.conf
を見てみると案の定存在しないパスを指していたので、それぞれ which
して以下のように正しいパスを設定しなおした。
pinentry-program /opt/homebrew/bin/pinentry-mac
pinentry-program /opt/homebrew/bin/pinentry-touchid
最後に gpg-agent
を一度殺せば解決。ただしく署名したcommitができるようになる。
gpgconf --kill gpg-agent
Discussion