Categories
Tags
Alamofire Android AppStoreConnect AWS Bun C++ cAdvisor CFW Cloudflare Cloudflare Access Cloudflare KV Cloudflare Tunnel Cloudflare Workers D1 Deno DevContainer Discord Docker ECR ECS Edizon Emulator EmuMMC Fastlane Firestore Frida Ghidra Git GitHub GitHub Actions GitLab GPG Grafana HACGUI Heroku Homebrew Hono IDA Pro iOS IPSwitch Jailbreak Javascript JSON JWT LanPlay Linode macOS Mirakurun MongoDB NestJS NextJS Nintendo Nintendo Switch NodeJS PHP PostgreSQL Prisma Programming Prometheus Python React Realm RealmSwift Ruby Salmon Run Salmonia3+ Shogi Sideload Snap Splatoon Splatoon2 Splatoon3 SSH Stable Diffusion Starlight Swift Swift Package SwiftUI Switch TensorRT Turf War Typescript TypeScript Ubuntu Ubuntu Server VNC VPN VSCode Vue WARP Wireguard XCode Xcode yarn zsh 家電 横歩取り
495 words
2 minutes
macOSの最新版でGPG署名に失敗する話
概要
macOS 15.0.1+DevContainerを利用しているとたまにGPG署名ができなくなってしまう状況になりました。
error: gpg failed to sign the data
fatal: failed to write commit object
いま、ログがどっかいったのでないのですがスペースとしておいておきます。
対応方法
GPGのエージェントがおかしいっぽいので直します。
~/.gnupg/gpg-agent.conf
を編集します。
enable-ssh-support
pinentry-program /opt/homebrew/bin/pinentry-mac
enable-ssh-support
はつけていても問題なかったのでつけています。
Keychainからパスワードを引っ張ってくるための設定としてpinentry-program
のパスはwhich pinentry-mac
で取ってきた値を突っ込みます。
最後に、
gpgconf --kill gpg-agent
gpgconf --launch gpg-agent
と入力してgpg-agent
を再起動します。ただ設定を読み込み直すだけでダメっぽいです。
あ、ここまでの話は全部ホストマシンでやります。
最後にDevContainerを再起動すればちゃんと署名できるようになっていると思います、多分。
ロックされている場合
$ gpg --list-keys --keyid-format LONG
gpg: Note: database_open 134217901 waiting for lock (held by 3142) ...
みたいな不穏なメッセージが出るときに使います。
とりあえず原因がわからないので毎回~/.gnupg
をふっとばしています。
$ rm -rf ~/.gnupg
$ gpgconf --kill gpg-agent
$ gpgconf --launch gpg-agent
$ vi ~/.gnupg/gpg-agent.conf
として
enable-ssh-support
pinentry-program /opt/homebrew/bin/pinentry-mac
を書いて保存し、このままだと鍵がないので、
$ gpg --import private.key
で鍵をインポートしたあと、
$ gpg --edit-key GPG_KEY_ID
で対話形式で鍵を変更し、信頼するようにします。
trust
5
と入力して全面的に鍵を信頼するように変更したらquit
で保存して終了します。
最後に、
$ gpgconf --kill gpg-agent
$ gpgconf --launch gpg-agent
でgpg-agentを再起動します。この状態でDevContainerを開き直せば署名ができるようになっていると思います、多分。
macOSの最新版でGPG署名に失敗する話
https://fuwari.vercel.app/posts/2024/12/gpg_failed/