GitとGPGを活用して、自分のコードが確かに自分自身によって書かれ、改ざんされていないことを証明するための一つの方法として、コミットの署名があります。
ここでは、古いmacから新しいmacへ移行するにあたり、GPGキーをエクスポートとインポートし、Gitでそれを利用する方法を説明します。
GPGキーのエクスポート (旧PC)
1. まず、システムに存在するGPGキー(秘密鍵)を一覧表示します:
gpg --list-secret-keys --keyid-format=long
[keyboxd]
---------
sec rsa4096/GE599640C76EF5A5 2021-10-05 [SC]
GE507FE5254C4E2F34C76FF1EE599640C76EF5A5
uid [ 究極 ] Hoge Fugao <hoge@gmail.com>
ssb rsa4096/3EA2F927AC9DFB37 2021-10-05 [E]
2. 秘密キーをエクスポートします(hoge@gmail.comは、自分のメールアドレスに置き換えてください):
gpg --export-secret-keys GE507FE5254C4E2F34C76FF1EE599640C76EF5A5 > private.key
(パスワード入力を求められたら、パスワードを入力する)
GPGキーのインポート (新PC)
1. エクスポートしたキーを新しいシステムでインポートします:
gpg --import ~/private.gpg
2. インポートが成功したかどうかを確認します:
gpg --list-secret-keys --keyid-format=long
[keyboxd]
---------
sec rsa4096/GE599640C76EF5A5 2021-10-05 [SC]
GE507FE5254C4E2F34C76FF1EE599640C76EF5A5
uid [ Unknown ] Hoge Fugao <hoge@gmail.com>
ssb rsa4096/3EA2F927AC9DFB37 2021-10-05 [E]
GPGキーの信頼レベルを設定する (新PC)
1. GPGキーを操作するためには、キーの信頼レベルを設定する必要があります。キーを利用して署名の検証や暗号化されたメッセージの復号化を行う際に必要となります。
2. 信頼レベルの設定は以下のコマンドを用いて行います:
gpg --edit-key GE507FE5254C4E2F34C76FF1EE599640C76EF5A5 trust quit
上記のコマンドを実行すると、GPGキーの編集モードに入ることができます。
3. `trust` コマンドにより、以下の選択肢が提示されます。5を選択してください。
1 = 知らない、または何とも言えない
2 = 信用しない
3 = まぁまぁ信用する
4 = 充分に信用する
5 = 究極的に信用する
m = メーン・メニューに戻る
4. `quit` コマンドによりキーの編集を終了します。これにより設定は保存されます。
これで、GPGキーの信頼レベルの設定は完了です。次に、このキーを用いて実際に署名や暗号化を行う方法について説明します。
GitにGPGキーを設定 (新PC)
1. 自分のGPGキーをGitで使用するよう設定します(GE507FE5254C4E2F34C76FF1EE599640C76EF5A5は、自分のキーIDに置き換えてください):
git config --global user.signingkey GE507FE5254C4E2F34C76FF1EE599640C76EF5A5
2. Gitにコミットへの署名をデフォルトで行うように設定します:
git config --global commit.gpgsign true
3. GPGプログラムとしてgpgを指定します:
git config --global gpg.program gpg
4. 設定が成功したかどうかを確認します:
git config --global -l
GPGに関連する環境設定を行う (新PC)
1. GPGに対して現在のターミナル情報を伝えるため、`GPG_TTY`という環境変数を設定します。`.zshrc` または `.zprofile` ファイルが存在する場合に、そのファイルの末尾に `GPG_TTY` の設定を追加します。
export GPG_TTY=$(tty)
この設定を反映するためには、新たなターミナルセッションを開始するか、`source` コマンドを利用して設定ファイルを再読込する必要があります。
2. 次に、`pinentry-mac`をインストールします。これはGPGのパスワード入力をグラフィカルに行うためのツールです。Homebrewを利用して以下のコマンドでインストールできます。
brew install pinentry-mac
3. `pinentry-mac`をGPGエージェントが使用するように設定します。以下のコマンドは、GPGエージェントの設定ファイル(`gpg-agent.conf`)に`pinentry-program`の設定を追加します。
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
4. 最後に、設定を反映させるためにGPGエージェントを再起動します。これは以下のコマンドで実行できます。
killall gpg-agent
以上で、GPGキーのエクスポートとインポート、およびGitへの設定が完了しました。これで、自分のGitコミットは自分自身によるものであることが証明されます。
コメント