GitHubのGPG Keyを設定する

ふと、GitHubのコミットに Verified を表示したくなったので、やりました。

色々やり方あるかと思いますが、できるだけ簡単な方法でやってみました。

環境

  • macOS High Sierra

GPG Suiteインストール

GPG Suiteというのを使うので、以下のサイトからダウンロードしてインストールします。

GPG Key作成

GPG Keychain を起動して、メニューのファイルから 新しい鍵... を選択します。

下のように入力して、鍵を生成します。メールアドレスはGitHubで登録してるものを入力します。

鍵を生成時にパスワードが弱いとダイアログが表示されます。パスワードを変更するか、そのまま進めるかを選択する必要があります。

鍵を生成後に公開鍵をサーバーにアップするか聞かれます。ぼくは特に共有する予定もないので、不要ですボタンを選択しました。

公開鍵をコピー

鍵を生成後に一覧に表示されるので、右クリックしてコピーします。

GitHubへ登録

https://github.com/settings/keys のページに行ってGPG keysのところから New GPG key ボタンを押して、先程コピーしたものを貼り付けます。

鍵ID取得

コマンドラインで以下のコマンドを実行します。

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

結果が以下のようになると思います。

/Users/kenji/.gnupg/pubring.kbx
-------------------------------
sec rsa4096/8439160283A46D40 2018-03-17 [SC]
5E530DACFFCB64BAEFD9ED3F8439160283A46D40
uid [ 究極 ] Kenji Abe (GitHub)
ssb rsa4096/BD5C8DB05E37A047 2018-03-17 [E]

この結果の sec の行に rsa4096 の後の16桁の英数字が鍵IDとなります。

Git設定

最後にGitの設定です。

GitにGPGの署名設定をします。以下のコマンドで先程の鍵IDを設定します。

$ git config --global user.signingkey 1234123412341234

コミットするときに -S をつけると署名されるのですが、毎回オプションをつけるのは面倒なので、デフォルトで署名するようにします。

$ git config --global commit.gpgsign true

gpgの設定も追加します。

$ git config --global gpg.program gpg2

Gitコミット

GPG設定後に最初のコミットでパスワード聞かれますので、鍵を生成したときに設定したパスワードを入力します。

おわり

これで Verified が表示されるようになると思います。

インポートとエクスポート

別のPCでも同じGPG Keyをつかいた時はGPG Keychainで、対象の鍵を選択して、左上のエクスポートします。その時、 Include secret key in exported file にチェックを付けておきます。エクスポート時にパスワードを設定します。

インポートはエクスポートしたファイルを選択してパスワードを入力するだけです。

GitHubで登録したGPG Keyを削除すると以前のコミットが Unverified って表示されちゃうので、GPG Keyは同じのを使ったほうが良いかも。

参考

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO