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にしてキーを選択します。

関連記事

  1. GPGの鍵の生成方法

  2. Ubuntu上でSwiftを使うためにCLionを試してみる

  3. Parallelsのキーボードショートカット設定の変更に気が付いた

  4. SSHのクライアント側のセットアップ

  5. Amazon Fire TV 4K HDR 2017を5GHzに接続す…

  6. Xcode 8.3に移行したらnullabilityのワーニングが出た…

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行
  2. 基礎から学ぶ SwiftUI
  3. 基礎から学ぶ SwiftUI