GitHubでVerifiedバッジを付ける!GPGによるコミット署名の設定方法

技術

GitHubでは、コミットやタグにGPG署名を付けることで「Verified」バッジを表示できます。
これは、そのコミットが本人によるものであることを証明する仕組みです。
今回は、GPGを使ってコミット署名を設定する方法を紹介します。

なぜコミット署名をするのか

  • コミットが正しい発行者によるものと証明できる
  • 改ざんやなりすまし防止になる
  • GitHub上でVerifiedバッジが付き、信頼性が向上する

開発者ポートフォリオとしても見栄えが良く、採用や取引先へのアピールにもなります。

GPG署名とPGP署名の違い(実は同じ仕組み)

GitやKeyoxideの設定を見ていると、「GPG署名」や「PGP署名」という言葉が出てきます。
一見別物のようですが、実はどちらも同じ OpenPGP という規格に基づいた署名です。

呼び方意味・背景
PGPPretty Good Privacy。暗号化・署名ソフトの商標名
OpenPGPPGPの仕組みを標準化したオープン規格(RFC 4880)
GPG(GnuPG)OpenPGPを実装したオープンソースソフト。Gitが呼び出すのはこれ。

Gitの「GPG署名」は、内部的にはOpenPGP署名です。
Keyoxideで使う「PGP署名」と仕組みは同じで、単に「ソフトとしてGnuPGを使っているからGPG署名と呼んでいる」だけの違いです。

結論、

  • GPG署名 = GnuPGによるOpenPGP署名
  • Keyoxideの証明もGitのVerifiedバッジも、同じ鍵ペアで兼用できる
  • 呼び方は違っても、技術的にはほぼ同じもの

GPG鍵を作成する

ターミナルで以下を実行します。

gpg --full-generate-key
  • 鍵の種類RSA and RSA を選択
  • 鍵長:4096ビットを推奨
  • 有効期限:1年や2年などお好みで
  • 名前・メール:GitHubに登録しているものと一致させる

鍵IDを確認する

gpg --list-secret-keys --keyid-format=long

出力例:

sec   rsa4096/ABCD1234EFGH5678 2025-08-11 [SC] [expires: 2026-08-11]

この ABCD1234EFGH5678 の部分が鍵IDです。

公開鍵をGitHubに登録する

鍵IDを使って公開鍵を出力します。

gpg --armor --export ABCD1234EFGH5678
  1. 表示された文字列をコピーします。
  2. GitHubにログイン
  3. 右上プロフィールアイコン → Settings
  4. 左メニューの SSH and GPG keys
  5. New GPG key をクリック
  6. 先ほどコピーした公開鍵を貼り付けて保存

Gitに署名設定を追加する

git config --global user.signingkey ABCD1234EFGH5678
git config --global commit.gpgsign true

また、user.email がGitHubに登録しているメールアドレスになっているか確認します。

git config --global user.email

コミットして確認する

git commit -S -m "Add README"

GitHub上でコミットを開くと、右上にVerifiedバッジが付いているはずです。

よくあるエラーと対処法

  • gpg: signing failed: No secret key
    → 鍵ID設定の間違い、または gpg-agent が動いていない可能性あり。
  • bad passphrase
    → 鍵作成時に設定したパスフレーズを再入力。

まとめ

GPG署名は数十分で設定でき、開発者としての信頼性を大きく向上させます。
Verifiedバッジは小さな見た目の変化ですが、「自分のコードを保証できる」という大きな意味があります。
ぜひ導入してみてください。

コメント

タイトルとURLをコピーしました