前提#
正常に機能する gpg コマンドを使用します
GPG キーの生成#
注:git config のメールアドレスと一致させる必要があります。コマンドの確認方法は以下の通りです
git config --global user.email
キーの生成
gpg --full-generate-key
- キータイプの選択:デフォルトで構いません
- アルゴリズムの選択:デフォルト
- 有効期限:自分に依存します
- これらの内容は正しいですか:y
- 名前
- メールアドレス(git config のものに注意してください)
- コメント:自分に依存します
- パスワードの入力
キー情報の取得#
gpg --list-keys
最初の行のスイッチが pub であることを確認し、2 行目の ID をコピーして、ターミナルで次のコマンドを実行します:
gpg --armor --export コピーしたID
例:gpg --armor --export 4F113915706D141348CDC3DB5873563E6B2
実行すると、BEGIN で始まり、END で終わる公開鍵の一部が表示されます。これをコピーして、GitHub に移動します
公開鍵を GitHub に貼り付ける#
GitHub-> 右上のアイコン -> 設定 ->SSH and GPG keys->New GPG key
- タイトルを入力
- コピーした内容を Key に貼り付ける
- GPG キーを追加
GPG 秘密鍵を使用して Git コミットに署名する#
キーリストを取得
gpg --list-keys
ID をコピー
git config --global user.signingkey コピーしたID
例:git config --global user.signingkey 4F113915706D141348CDC3DB5873563E6B2
各コミットに署名するには、-S オプションを追加します
git commit -S -m "..."
自動的に署名を要求することもできます
git config --global commit.gpgsign true
GitHub 自体の GPG キーを信頼する#
意味:ウェブページ上でリポジトリを作成すると、Verified が表示されないため、強迫観念が不快です
GitHub 自体の GPG キーをインポートする
curl https://github.com/web-flow.gpg | gpg --import
24 年間で GitHub の 1 つのキーが期限切れになるため、2 つのキーがインポートされます
キーリストを取得
gpg --list-keys
期限切れのない GitHub の公開鍵 ID をコピーし、署名操作を実行します
gpg --sign-key 968479A1AFF927E37D1A566BB5690EEEBB952194
y を入力して署名を確認します