投稿日:2024/3/1最終更新日:2026/3/22
Githubで、コミットにGPG鍵で署名できるようにするための設定方法です。githubのコミットログに「Verified」と表示されるようになります。
gpg --full-generate-keyこのとき、メールは Github に登録済みのメールを使用してください。
pub rsa3072/OOOOOOOOOOOOOO 2024-03-01 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXOOOOOOOOOOOOOO
uid [ 究極 ] Buntin Synthia (github) <[email protected]>
sub rsa3072/TTTTTTTT 2024-03-01 [E]この場合、ID はOOOOOOOOOOOOOOになります。
以下でも取得できます。
gpg --list-keys --keyid-format LONG | grep pub | awk '{print $2}' | cut -d'/' -f2;ID がわかったら、以下のコマンドを実際の ID に差し替えて実行してください。
gpg --armor --export OOOOOOOOOOOOOO以下の様な感じのが出てくるかと思います。それを後々 Github に登録するので ID と一緒に取っといてください。
-----BEGIN PGP PUBLIC KEY BLOCK-----
???
...
???
-----END PGP PUBLIC KEY BLOCK-----正確な定義はわかりませんが、コミット時署名のためのパスワードを打つための専用の TUI ソフトウェア的なやつです。
brew install pinentry-mac; # Darwin
sudo apt install pinentry-gtk2; # Debian系 GUI
sudo apt install pinentry-curses; # Debian系 CUI
sudo dnf install pinentry; # RHEL系(EPEL必要かも)git config --global user.signingkey OOOOOOOOOOOOOO # GPG鍵のID
git config --global commit.gpgsign true
git config --global gpg.program gpg.zshrc,.bashrc に、1行追加するだけです。
出力先の指定、的なことを行なっています。
export GPG_TTY=$(tty)git に ssh できる環境を作っておきましょう。これやっててできないことはないと思いますが。
設定 -> SSH and GPG keys -> New GPG keys
から追加可能。ID と公開鍵を入力する。
これで、コミット時に GPG 署名ができるようになります。

パスフレーズ、パスワードの変更をしたくなった時の変更方法です。
正確には GPG の使い方なのかもしれませんが、自分は GPG の使用機会はほぼこれだけなのでここに残しておきます。
[email protected]::~ $ gpg --edit-key XXXXXXXXXXXXXXXX
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
秘密鍵が利用できます。
sec rsa3072/XXXXXXXXXXXXXXXX
作成: 2024-03-27 有効期限: 無期限 利用法: SC
信用: 究極 有効性: 究極
ssb rsa3072/????????????
作成: 2024-03-27 有効期限: 無期限 利用法: E
[ 究極 ] (1). synthia.liz (github-buntinjp) <[email protected]>
gpg> passwd
gpg> save
鍵は無変更なので更新は不要です。
[email protected]::~ $