GitHubにGPGで署名してコミットする

GitHubにGPGで署名してコミット出来るように設定する方法です。署名するようにすると、コードをコミットした人がなりすましとかではないことを確認できるようになります。例えば、署名したコミットはGitHub上で「Verified」と表示されます。

GitHubに公開鍵を登録する

GitHubに公開鍵を登録します。登録する公開鍵は、ローカルリポジトリに指定しているメールアドレス用の公開鍵を登録します。複数登録できるので、私の場合は本当のメールアドレスの公開鍵と、@users.noreply.github.comの公開鍵を登録しました。

GitHubで登録するには、アカウントの設定画面の「SSH and GPG keys」の「GPG keys」に追加します。

公開鍵の出力方法については、以下の記事を参考にしてください。

クライアントマシンで署名する設定を行う

以下の様にターミナルでコマンドを実行します。

# プログラムを指定する
$ git config --global gpg.program $(which gpg)

# GPGの署名を有効化する。グローバルに設定する場合は、--globalを付ける
$ git config commit.gpgsign true

# fingerprintをコピーする。下記の「########」の部分に出力された値をコピーする
$ gpg -K --keyid-format SHORT

sec rsa4096/######## YYYY-MM-DD [SC] [expires: YYYY-MM-DD]

# キーを設定する。「########」には上記でコピーしたfingerprintを指定する。グローバルに指定したいときは--globalを付ける
git confg user.signingkey ########

SourceTreeで署名する設定を行う

以下の様にターミナルでコマンドを実行します。

$ ls -la /usr/local/bin/gpg

# 上記のコマンドで本当の保存先が分かる。例えば「../Cellar/gnupg/2.2.6/bin/gpg」などが出力される。
# SourceTreeはgpg2でないと認識しないので、gpg2という名前のシンボリックリンクを作る

$ cd /usr/local/Cellar/gnupg/2.2.6/bin
$ sudo ln -s gpg gpg2

SourceTreeでリポジトリの設定ダイアログの「セキュリティ」タブで「コミット用GPG鍵の署名を有効にする」をONにしてキーを選択します。

投稿者プロフィール

林 晃
林 晃macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者
アールケー開発代表。macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者。ObjC/Swift/C++使い。豊富な開発実務経験を基に、教育コンテンツ開発、技術書執筆、技術指導、技術セミナー講師、企業内研修講師、行政・自治体職員研修講師も行います。

関連記事

  1. Bitbucket Server で Git LFS を使う

  2. Windows 7 SP1 のWindows Updateを成功させる…

  3. SwiftでのバッファアクセスはwithUnsafeBytesを使う

  4. Mac Miniで minidlna を動かす

  5. Bitbucket Server で Git v2.2 以降が必要にな…

  6. Transmitの同時接続数の上限値を設定する

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行