【github】gpgキーをWindowsで作る方法

githubのAPI接続,なりすまし対策などで必要なgpgキー。

linux環境ならデフォルトでgpgが使えるため、簡単ですが、windowsでキーを作る方法の詳細な記事が無かったので記すことにしました。

ステップを追っていただければキー生成からgithubでの登録、Verifiedバッチが表示されるまでを一通りできるようになります。最後まで読んでいただけると幸いです。また、キー作成にあたり一般に推奨されるオプションについても紹介しています。

手順

  1. gnugpgをインストール
  2. PowerShellからgpgキーを作成
  3. githubに登録
  4. Gitへの設定
windowsでgnu鍵を作成し、githubと連携する方法

1. gnuPGをインストール

ダウンロード

windowsでgpgキーを作る方法は様々ありますが、gnuPGをインストールするのが一番簡単かつスタンダードです。

Gnugpg

Gnugpg

https://www.gnupg.org/download/

www.gnupg.org

ダウンロードページを開くと、いろいろ出てきますが、windowsへのインストーラは、以下の画像の様な場所にあるので探してダウンロードしてください。

gnuPgのダウンロードページの画像。公開されているインストーラ一覧

Windowsのdownload(simple installer for the current GnuPG)をクリックしてダウンロードできます。一番上にあるGpg4winでもよいですが、こちらだとフルパッケージなのでドネイト(寄付)を要求されます。

インストーラを起動してインストール

 基本的にデフォルト設定のまま「NEXT」で進めてインストールを完了してください。

インストール後、PowerShellまたはコマンドプロンプトを開き、以下のコマンドでバージョンが表示されれば成功です。

gpg --version

2. GPGキーの作成

インストールが完了したら、実際にキーを作成します。ここではセキュリティ強度を高めるために、推奨されるオプションを選択していきます。

キー作成コピペ

gpg --full-generate-key

対話形式で設定が進みます。以下のように選択することをおすすめします。

  1. 鍵の種類: (1) RSA and RSA (default) を選択(1を入力してEnter)
  2. 鍵長: デフォルトは3072ですが、より強固な 4096 を推奨します。
  3. 有効期限: 個人利用であれば 0 (無期限) でも構いませんが、プロジェクトの規定があればそれに従います。
  4. ユーザー情報: GitHubに登録している名前メールアドレスを入力します。
    • 注意: メールアドレスはGitHubのアカウントのメールアドレスと一致させる必要があります。
  5. パスフレーズ: キーを使用する際のパスワードを設定します。忘れないように管理してください。

実際の操作例

1.鍵の種類

gnuPGでのキー生成手順ターミナル画像

下記の種類の選択です。数字を打ち込んでEnterで選択できます。

githubのgpgキーとして設定するなら、(1) RSA and RSA (default)が推奨なので、1と入力しEnter

2.鍵長

gnuPGでのキー生成手順ターミナル画像:鍵長の指定

何も打たずにEnterすると 3072になります。これでもいいですが、セキュリティを上げたいときは最大長の4096とするとよいです。

3.有効期限

gnuPGでのキー生成手順ターミナル画像:有効期間指定

何も打たずにEnterすると 0 (鍵は無期限)になります。

個人開発などであれば、0でよいです。企業内等でセキュリティルールがあればそれに従ってください。

入力すると y/N (yes/no)入力を求められるので、よければ yと打ってください。

4.ユーザ情報

gnuPGでのキー生成手順ターミナル画像:ユーザ情報の入力

本名とありますが、GITHUBのアカウント名で指定するのが一般的です。

電子メールは必ずgithubアカウントと同じものを入力してください。ここが違うとgithubでのverifidがうまくいきません。

入力確認後、間違いがなければ、“O“と打ち込むことでキー生成できます。

※キー生成を開始すると、パスワード入力を要求するポップアップが出ます。
パスワード決めて、入力してください。(忘れないようにすること!)

日本語の文字コードがうまく表示されないことがあり、文字化けして以下の様な感じに表示される場合もありますが、そのままパスワード入力して大丈夫です。

gnuPGでのキー生成手順:パスワード入力。日本語環境だと文字化けることがありますが問題ありません

文字化けしたpopup

5.生成した鍵(GPGキー)の確認

パスワード設定までできれば、鍵が生成できているはずなので、以下のコードで生成した鍵を確認します。

gpg --list-secret-keys --keyid-format LONG

実行すると以下の様な表示が出るはずです。

sec   rsa4096/3AA5C34371567BD2 2023-12-09 [SC]
      <フィンガープリント>
uid                 [ultimate] ユーザー名 <メールアドレス>
ssb   rsa4096/42B3...

この時、”sec rsa4096/3AA5C34371567BD2″の”3AA5C34371567BD2“がGPGキーIDになるのでコピーしておきます。(公開鍵の指定に使います。)

3. 公開鍵のエクスポートとGitHubへの登録

公開鍵をコピーする

GitHubに登録するのは「公開鍵」です。先ほどのキーIDを使って、公開鍵を表示させます。

# 先ほどのキーIDを使用してください
gpg --armor --export <GPGキーID>

# 例:gpg --armor --export 3AA5C34371567BD2

これを実行すると、以下の様な表示がされるはずなので、—– BEGIN PGP から最後の KEY BLOCK —-まで全文をコピーします。これをgithubに登録します。

-----BEGIN PGP PUBLIC KEY BLOCK-----

qwert123456-sa9g820d ....(公開鍵)

-----END PGP PUBLIC KEY BLOCK-----

GitHub側の設定

  1. GitHubの右上のアイコンから Settings を開きます。
  2. 左メニューの SSH and GPG keys をクリックします
gighubの新規gpgキー設定画面
  1. New GPG key ボタンを押します。
  2. Titleには「myhome-windows-key」や「<name>-gpgkey」など分かりやすい名前をつけ、Key欄に先ほどコピーした内容を貼り付けます。
  3. Add GPG key をクリックして完了です。

4. ローカルGitへの設定(重要)

実は、GitHubに登録しただけでは署名は行われません。「このPCのGitは、このキーを使って署名する」という設定をローカルに行う必要があります。

gitのコンフィグに先ほどのGPGキーIDを設定します。

グローバル環境に設定する場合は以下の様にします。きーID は変更してください。

# 1. 使用するキーIDを指定
git config --global user.signingkey <GPGキーID>
# 2. 全てのコミットで自動的に署名を行う設定
git config --global commit.gpgsign true

個別リポジトリで設定するときは、ローカルリポジトリのフォルダ内にて、 –globalを外して、代わりに–localを指定すれば設定できます。

5. 動作確認

適当なリポジトリで変更を加え、コミットしてみましょう。 コミット時にパスフレーズの入力を求められるポップアップ(Pinentry)が出れば成功です。

GitHub上でそのコミットを確認し、緑色の Verified バッジが表示されていれば設定完了です!

gpg verified github commit.

コミットの表示例

まとめ

WindowsでのGPGキー設定は、ツールのインストールからGitの設定までステップが多いですが、一度設定してしまえばセキュリティと信頼性を大きく向上させることができます。

ぜひ設定してみてください。

2025年度版github環境構築の手引き

Githubの使い方2025年度版、初心者から基本の使い方まとめ 5 記事
シリーズ

【2025年版】GitHub環境構築ログ

ここまで読んでいただきありがとうございます。

では、次の記事で。 lumenHero