Closed15

GitHub アカウントに GPG キーを登録する

kokikoki

gpg をインストール

$ brew install gpg
$ gpg --version
gpg (GnuPG) 2.4.3
libgcrypt 1.10.2
Copyright (C) 2023 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /Users/koki/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
kokikoki

GPG キーペアを生成

$ gpg --full-generate-key

基本的に全て既定値を使用。

  • Real Name: Koki Sato
  • Email address: GitHub に登録しているメールアドレス
  • Comment: 空のまま Enter

その後 Passphrase を入力

kokikoki

公開鍵・秘密鍵の両方がある GPG を一覧表示。

$ gpg --list-secret-keys --keyid-format=long

この中から使用したい GPG キー ID を控える。
例えば次のように出力されている場合、 GPG キー ID は 3AA5C34371567BD2

/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot <hubot@example.com>
ssb   4096R/4BB6D45482678BE3 2016-03-10
kokikoki

公開鍵を出力する。

$ gpg --armor --export <GPGキーID>

出力されたキーをひかえておく。

kokikoki

New GPG key をクリック。
Title に任意の名前を入力し、 Key に先程ひかえた公開鍵を入力して Add GPG key をクリック。

kokikoki

全てのコミットを署名付きにする。

$ git config --global commit.gpgsign true
kokikoki

Git コマンドに GPG キーを設定する。

$ git config --global user.signingkey <GPGキーID>
kokikoki

git commit を実行すると次のようなエラーが出た。

error: gpg failed to sign the data:

GPG_TTY 環境変数を設定した。

$ export GPG_TTY=$(tty)

その後 git commit を再実行したらパスフレーズの入力フォームが表示される。
パスフレーズを入力後、コミットが作成された。

kokikoki

他の PC でも使えるようにしたい

kokikoki

秘密鍵を出力。
パスフレーズの入力が求められるので入力する。

$ gpg --export-secret-keys <GPGキーID> > secret.gpg

このファイルを他の PC に共有する。

kokikoki

共有された側の PC で鍵を import する。

$ gpg --import secret.gpg

パスフレーズの入力が求められるので、入力する。
これで他の PC でも同じ GPG キーでコミットに署名できる。

このスクラップは2023/10/25にクローズされました