Git コミットを GPG キーで署名する方法

オープンソースリポジトリやプロフェッショナルなプロジェクトを見ると、一部のコミットに「Verified(検証済み)」バッジが付いていることに気づくかもしれません。これらの署名付きコミットは作者のアイデンティティを証明し、コードベースに追加の信頼層を提供します。
GPG キーを使用して Git コミットに署名することは簡単に設定でき、コミットが実際にあなたからのものであることを明確に証明します。
この記事では、GPG キーの作成方法、Git での設定方法、そして自動的にコミットに署名を開始する方法について学びます。
重要なポイント
- Git コミットの署名はあなたのアイデンティティを検証し、プロジェクトの信頼性を向上させます
- GPG コミット署名の設定には、キーの生成と Git の設定が含まれます
- 署名付きコミットは、オープンソースや企業の業務において特に重要です
なぜ Git コミットに署名するのか?
- 作者の証明: 他の人があなたを偽装した誰かではなく、あなた自身がコミットを行ったことを検証できます。
- 信頼性とセキュリティ: オープンソース、企業、機密性の高いリポジトリにおいて重要です。
- プロフェッショナルな基準: 多くのエンジニアリングワークフローで期待されるようになっています。
署名付きコミットは GitHub などのプラットフォームで「Verified」ラベル付きで表示されます。
GPG キーの生成方法
まず、すでに GPG キーを持っているかどうかを確認します:
gpg --list-secret-keys --keyid-format=long
新しく作成する必要がある場合:
gpg --full-generate-key
プロンプトが表示されたら:
- デフォルト(RSA と RSA)を選択
- キーサイズを 4096 ビットに設定
- 有効期限を設定(オプション、1年が一般的)
- 名前とメールアドレスを入力(GitHub を使用している場合は GitHub アカウントと一致する必要があります)
作成後、キーを一覧表示します:
gpg --list-secret-keys --keyid-format=long
あなたのメールアドレスに関連付けられた GPG キー ID(長い文字列)を見つけます。
Git で GPG キーを使用するための設定方法
- Git に自動的にコミットに署名するよう指示します:
git config --global commit.gpgsign true
- Git に GPG キーを設定します:
git config --global user.signingkey YOUR_KEY_ID
YOUR_KEY_ID
を先ほど見つけたキー ID に置き換えてください。
- Git が GPG を使用することを確認します:
git config --global gpg.program gpg
これで、作成する新しいコミットはすべて自動的に署名されます。
関連記事: Git コミットテンプレートの設定:ステップバイステップガイド
GPG キーを GitHub にアップロードする方法
GitHub で「Verified」バッジを表示したい場合:
- 公開鍵をエクスポートします:
gpg --armor --export YOUR_EMAIL
- 出力全体をコピーします。
- GitHub > Settings > SSH and GPG keys > New GPG key に移動します。
- 公開鍵を貼り付けて保存します。
これで、GitHub はあなたの署名付きコミットを検証できるようになります。
署名の問題のトラブルシューティング
- GPG エージェントのプロンプト: 一部のシステムではパスフレーズをキャッシュするための追加設定が必要です。
- メールアドレスの不一致: GPG キーのメールアドレスは GitHub のメールアドレスと一致する必要があります(または GitHub アカウントに追加されている必要があります)。
- GPG が見つからない: GPG がインストールされていることを確認してください(
gpg --version
)。必要に応じて Homebrew、apt、またはシステムのパッケージマネージャーを使用してインストールしてください。
結論
GPG キーを使用して Git コミットに署名することで、プロジェクトのセキュリティと整合性が強化されます。これは、プロフェッショナリズムを示し、共同作業者、ユーザー、より広い開発者コミュニティとの信頼関係を構築する小さな追加ステップです。
よくある質問
はい。グローバル署名を有効にしない場合、`git commit -S` を使用して手動でコミットに署名できます。
はい。GitHub Actions ワークフローを設定して、署名付きコミットやタグに GPG キーを使用できます。
いいえ、オプションです。ただし、オープンソースや企業のプロジェクトでは推奨されるようになっています。