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