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

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

GitHubに公開鍵を登録する

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

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

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

[clink url=”https://www.rk-k.com/archives/3351″]

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

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

# プログラムを指定する
$ 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にしてキーを選択します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

林 晃のアバター 林 晃 代表・ソフトウェアエンジニア

アールケー開発代表。Appleプラットフォーム向けのアプリ開発が好きなアプリ開発者。アプリの受託開発、技術書執筆、技術指導・セミナー講師。3DCGコンテンツ作成にも取組中です。

目次