Closed15
GitHub アカウントに GPG キーを登録する
参考
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
GPG キーペアを生成
$ gpg --full-generate-key
基本的に全て既定値を使用。
- Real Name:
Koki Sato
- Email address: GitHub に登録しているメールアドレス
- Comment: 空のまま Enter
その後 Passphrase を入力
公開鍵・秘密鍵の両方がある 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
公開鍵を出力する。
$ gpg --armor --export <GPGキーID>
出力されたキーをひかえておく。
SSH and GPG keys
の画面にアクセス
New GPG key
をクリック。
Title
に任意の名前を入力し、 Key
に先程ひかえた公開鍵を入力して Add GPG key
をクリック。
全てのコミットを署名付きにする。
$ git config --global commit.gpgsign true
Git コマンドに GPG キーを設定する。
$ git config --global user.signingkey <GPGキーID>
GPG キー ID は秘匿情報ではないため、 dotfiles 等で公開しても問題はない。
git commit
を実行すると次のようなエラーが出た。
error: gpg failed to sign the data:
GPG_TTY
環境変数を設定した。
$ export GPG_TTY=$(tty)
その後 git commit
を再実行したらパスフレーズの入力フォームが表示される。
パスフレーズを入力後、コミットが作成された。
GitHub 上でコミットが Verified
になっていることを確認。
他の PC でも使えるようにしたい
秘密鍵を出力。
パスフレーズの入力が求められるので入力する。
$ gpg --export-secret-keys <GPGキーID> > secret.gpg
このファイルを他の PC に共有する。
共有された側の PC で鍵を import する。
$ gpg --import secret.gpg
パスフレーズの入力が求められるので、入力する。
これで他の PC でも同じ GPG キーでコミットに署名できる。
このスクラップは2023/10/25にクローズされました