2024/02/11
Gitでコミットに著名してみる
GitHubでコミットにverifiedとついてたらかっこいいですよね。
ここではぱっと手順を書いていきます。
gpgのインストール
各パッケージマネージャーでインストールしてください。
- mac
brew install gpg
# or
# brew install gpg2Linuxはもともと入ってると思いますが、なかったら
# arch
sudo pacman -S gnupg
# debian
sudo apt install gnupg
# rhel9
sudo dnf install gnupg
# rhel~8
sudo yum install gnupgみたいな感じでインストールしちゃってください。gnupg2でも大丈夫です。
(というか、2のほうが良さそう。でも今回はどっちでも行けます。)
もしgnupg2を使う場合はここから下のコマンドのgpgをgpg2に読み替えてください。
gpgでもgpg2にパスが通ってる場合もあると思います。その場合は大丈夫です。
keyの作成
まず、リストを見てみてください。
gpg --list-keysこれまでに作ってこなかったら何も出ないと思います。
Macだと、信用データベースができました。みたくでるかもです。
このコマンドで作成できます。
gpg --gen-key名前とメアドはgitconfigと同じにしてください。名前はGitHubと同じでやってるけど、違くてもできるかは不明。
次に鍵を取得をします。どこが鍵かめっちゃわかりづらいので、このコマンドで見れます。
gpg --list-keys --keyid-format LONG | grep pub | awk '{print $2}' | cut -d'/' -f2;鍵がわかったらコピーしておいてください。ここからこの鍵を<key>と書きます。
作成した鍵には有効期限が設定されてます。(作成画面で出てると思います。)
変更したい場合は以下の通り。
gpg --expert --edit-key <key>
gpg> expire
# 0で無制限、他も書いてある通りにできます。
gpg> savegitconfigの設定
git config --global user.signingkey <key>
git config --global gpg.program gpgこのままだと、コミットするときに毎回-Sオプションが必要になります。
面倒な方は以下で毎回勝手に著名してくれます。
git config --global commit.gpgsign truepath設定
bashの方は.bashrcに、zshの方は.zshrcに以下を追加してください。
export GPG_TTY=$(tty)GitHubの設定
公開鍵をGitHubに登録する必要があります。
まずは公開鍵を出力します。
gpg --armor --export <key>コピーしたらGitHubのSetting→SSH and GPG keysの下のほうのNew GPG keyで登録してください。
これでコミットしたら著名できてると思います。
Mac限定オプション
Macはパスフレーズの入力画面をTUIではなく、別ウィンドウで出来ます。
以下を行う。
brew install pinentry-mac
echo "pinentry-program /opt/homebrew/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf
gpgconf --kill gpg-agentパスの部分は各々変える。
which pinentry-macこれで確認できる。
以上、これでコミットに著名が付きましたとさ。
最終更新日:2026/01/20