PGPキーのエクスポートとインポート、およびGitへの署名設定

IT

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コミットは自分自身によるものであることが証明されます。

コメント

タイトルとURLをコピーしました