🏹

Gitコマンド入門::Gitカスタマイズ機能(config,user.signingkey)第七十三回

2021/04/07に公開

みなさんこんにちは! 前回に続き、git config のカスタマイズ機能を学習して行きます。user.signingkey を設定すると、コミットやタグに署名出来るようです。これで、身元がはっきりすれば、ひとまず安心ってことですね。(笑)

今日の学習は、こちらの signingkey

https://git-scm.com/book/ja/v2/Git-のカスタマイズ-Git-の設定

前回の記事はこちらから!

https://zenn.dev/shiozumi/articles/35afddab3f65ce

git本家本元の情報はこちらから!

https://git-scm.com/book/ja/v2

今回は、user.signingkey で署名します!

git config --global user.signingkey <gpg-key-id>

急遽、こちらのドキュメントへジャンプ!

https://git-scm.com/book/ja/v2/Git-のさまざまなツール-作業内容への署名#r_signing

7.4 Git のさまざまなツール - 作業内容への署名

作業内容への署名
Git の仕組みは暗号学の点から見れば堅牢です。しかし、容易には得られません。インターネットを使って貢献を受け付けているとしましょう。受け付けた内容が信頼できる筋からのものかどうか調べたいときに、署名の付与・検証をGPG を使っておこなう複数の仕組みが Git にはあります。

GPG の設定確認 gpg --list-keys

$ gpg --list-keys

// ↓↓↓ 初めての場合は、初期化メッセージが出ます!

ディレクトリ「/home/shiozumi/.gnupg」が作成されました
新しいコンフィグレーション・ファイル「/home/shiozumi/.gnupg/gpg.conf」ができました
*警告*: 「/home/shiozumi/.gnupg/gpg.conf」のオプションはこの実行では、まだ有効になりません
鍵リング「/home/shiozumi/.gnupg/pubring.gpg」ができました
/home/shiozumi/.gnupg/trustdb.gpg: 信用データベースができました

二度目からは、何も表示されませんね!(^▽^;)

$ gpg --list-keys
$

// なにも、無いってことですね。

gpg --gen-key で鍵を作成!

$ gpg --gen-key

gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: 鍵リング「/home/shiozumi/.gnupg/secring.gpg」ができました

RSA と RSA (デフォルト) で1番を入力

ご希望の鍵の種類を選択してください:
   (1) RSA と RSA (デフォルト)
   (2) DSA と Elgamal
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
あなたの選択は? 1  // <!-- 1番を選択

RSA 鍵は 2048 ビットと入力

RSA 鍵は 1024 から 4096 ビットの長さで可能です。
鍵長は? (2048) 2048   // <!-- 2048と入力

要求された鍵長は2048ビット

鍵の有効期限は、0番の無期限を選択

鍵の有効期限を指定してください。
         0 = 鍵は無期限
      <n>  = 鍵は n 日間で期限切れ
      <n>w = 鍵は n 週間で期限切れ
      <n>m = 鍵は n か月間で期限切れ
      <n>y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)0  // <!-- 0を入力
(null)は無期限です

これで正しいですか? (y/N) y // <!-- yを入力

本名: User-Name

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。

本名: Makoto Shiozumi <!-- 各自の名前に合わせてください!

電子メール・アドレス: user@hoge.com

電子メール・アドレス: shiozumi@esmile-hd.com
// 各自のメールアドレスを入力してください!

コメント: 何も入れないで改行!

コメント:
次のユーザIDを選択しました:
    "Makoto Shiozumi <shiozumi@esmile-hd.com>"

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
// O を入力して次へ

秘密鍵を保護するためにパスフレーズ!

秘密鍵を保護するためにパスフレーズがいります。
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、
ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に
十分なエントロピーを供給する機会を与えることができます。

gpg: 鍵DBE47B35を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。

gpg: 信用データベースの検査
gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/DBE47B35 2021-04-07
   フィンガー・プリント = C275 CA4F 704D 894A DDDB  B9D3 DC3A 2640 DBE4 7B35
uid                  Makoto Shiozumi <shiozumi@esmile-hd.com>
sub   2048R/DA455C55 2021-04-07

gpg --list-keys で確認!

$ gpg --list-keys
/home/shiozumi/.gnupg/pubring.gpg
---------------------------------
pub   2048R/DBE47B35 2021-04-07
uid                  Makoto Shiozumi <shiozumi@esmile-hd.com>
sub   2048R/DA455C55 2021-04-07

// 一応、秘密鍵のハッシュ値を、LONG ファーマットで確認!

$ gpg --list-secret-keys --keyid-format LONG
/home/shiozumi/.gnupg/secring.gpg
---------------------------------
sec   2048R/DC3A2640DBE47B35 2021-04-07
uid                          Makoto Shiozumi <shiozumi@esmile-hd.com>
ssb   2048R/EE430DDADA455C55 2021-04-07

git config --global user.signingkey

pub 2048R/DBE47B35 ~~~ ここでは、pubのハッシュ値を指定します!

git config --global user.signingkey DBE47B35

// DBE47B35 を指定してください!

// 確認してみましょう!
git config --global --list

user.signingkey=DBE47B35  <!-- ここです!
user.email=shiozumi@esmile-hd.com
user.name=Makoto Shiozumi
  1. user.signingkey=DBE47B35
  2. user.email=shiozumi@esmile-hd.com
  3. user.name=Makoto Shiozumi

まとめ

ここまでの確認ポイントは、1番は、pub 公開鍵のハッシュ値を指定しましょう!
2、3番の値は、GPGの設定と合わせてください! 次回は、もう少し、GPG環境の設定について、補足して行きますね!

それでは、今回はここまで、お疲れ様でした!

https://zenn.dev/shiozumi/articles/bbd681d2c3b671
https://twitter.com/esmile2013

Discussion