GnuPG†
鍵の生成†
$ gpg --gen-key
gpg (GnuPG) 1.4.10; Copyright (C) 2008 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.
ご希望の鍵の種類を選択してください:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (署名のみ)
(4) RSA (署名のみ)
選択は? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
0 = 鍵は無期限
<n> = 鍵は n 日間で満了
<n>w = 鍵は n 週間で満了
<n>m = 鍵は n か月間で満了
<n>y = 鍵は n 年間で満了
鍵の有効期間は? (0)0
Key does not expire at all
これで正しいですか? (y/N) y
あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
本名: (名前を入力)
電子メール・アドレス: (メールアドレスを入力)
コメント:
次のユーザーIDを選択しました:
“名前 <メールアドレス>”
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
秘密鍵を保護するためにパスフレーズがいります。
パスフレーズを入力:
パスフレーズを再入力:
今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
(他の作業をする)
十分な長さの乱数が得られません。OSがもっと乱雑さを収集
できるよう、何かしてください! (あと172バイトいります)
(更に他の作業をする)
dsa.....+++++
.........+++++
今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
十分な長さの乱数が得られません。OSがもっと乱雑さを収集
できるよう、何かしてください! (あと71バイトいります)
(更に他の作業をする)
十分な長さの乱数が得られません。OSがもっと乱雑さを収集
できるよう、何かしてください! (あと119バイトいります)
(更に他の作業をする)
dsa...+++++
gpg: 鍵***を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。
gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u
(以下生成結果・略)
$
秘密鍵†
- 秘密鍵のexport
$ gpg -o sec.key -a --export-secret-key user@example.com
- "-a" オプションを付けるとASCII、なければバイナリで出力される
- 秘密鍵のimport
$ gpg --import --allow-secret-key-import sec.key
- 秘密鍵の削除
$ gpg --delete-secret-keys user@example.com
- 鍵束(キーのリスト)の表示
$ gpg --list-secret-key
公開鍵†
公開鍵の失効証明書†
暗号化と復号†
署名と検証†
ファイルの暗号化†
信用度の設定†
鍵の削除†
- 削除するキーの ID を確認する
$ gpg --list-keys
pub rsa2048 2018-05-01 [SC] [有効期限: 2072-11-21]
A7140500C0F8F52503D62770B4A3D5A542333C02
uid [ 信用度 ] Example User <user@example.com>
- ID を指定して削除
$ gpg --delete-keys user@example.com
鍵の有効期限の更新†
有効期限の更新をする†
- gpg を更新対象のキーID を指定して起動
$ gpg --edit-key <key-ID>
gpg (GnuPG) 2.1.18; Copyright (C) 2017 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.
Secret key is available.
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 10 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 10u
gpg: next trustdb check due at 2022-07-23
sec rsa****/****************
created: <created-date> expires: 2022-07-23 usage: SC
trust: ultimate validity: ultimate
ssb rsa****/****************
created: <created-date> expired: <expired-date> usage: E
[ultimate] (1). <user-name> <<key-ID>>
- expire (失効日)を指定するコマンドを実行し、プロンプトで期限を選択する
gpg> expire
Changing expiration time for the primary key.
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
- 確認されるので、OK なら "y" [return] をタイプ。
Key expires at 2022年07月23日 12時47分39秒 JST
Is this correct? (y/N) y
sec rsa****/****************
created: <created-date> expires: 2022-07-23 usage: SC
trust: ultimate validity: ultimate
ssb rsa****/****************
created: <created-date> expired: <expired-date> usage: E
[ultimate] (1). <user-name> <<key-ID>>
gpg: WARNING: Your encryption subkey expires soon.
gpg: You may want to change its expiration date too.
- ここまで問題なければ、 "q" [retuen], "y" [return] をタイプして終了。
gpg> q
Save changes? (y/N) y
$
有効期限更新後†
- 公開鍵を生成し、差し替えを行う
- 公開鍵をどこかに登録している場合は、有効期限を更新した後生成し直した公開鍵に置き換える。
鍵の公開†
キーサーバへのUP†
キーサーバに UP した公開鍵を失効させる†
おまけ(自前サーバで公開鍵を公開する場合)†
参考文献†