ふと、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は同じのを使ったほうが良いかも。