gpg鍵ペアの作成方法

前回公開鍵方式の説明で公開鍵、秘密鍵について記載しました。
今回は公開鍵と秘密鍵を作成する方法になります。

 
検証端末はCentOS 7.2です。

まずはサーバにgpgが入っているか確認します。

gpg --version

gpg (GnuPG) 2.0.22
libgcrypt 1.5.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
      TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2

インストールされていない場合は、パッケージからインストールが必要になりますが、ほとんどのサーバにgpgは入っていると思いますので、インストール方法は省きます。

さて、本題の鍵ペアの作成に移ります。
まずは自分の鍵を作成します。
ここで作成する鍵は、自分が公開する公開鍵とペアになる秘密鍵になります。

ここからは対話式に進んでいきます。(鍵ペアの作成の全文は一番下にあります。)

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/gpguser/.gnupg」が作成されました
gpg: 新しいコンフィグレーション・ファイル「/home/gpguser/.gnupg/gpg.conf」ができました
gpg: *警告*: 「/home/gpguser/.gnupg/gpg.conf」のオプションはこの実行では、まだ有効になりません
gpg: 鍵リング「/home/gpguser/.gnupg/secring.gpg」ができました
gpg: 鍵リング「/home/gpguser/.gnupg/pubring.gpg」ができました

コマンドを実行するユーザがgpgコマンドを初めて実行する場合、ユーザのホームディレクトリに.gnupgディレクトリが作成されます。
作成した鍵などはこの.gnupgディレクトリ配下に保存されます。

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

作成する鍵の種類を作成します。
特に特別なことをするわけではないので、デフォルトの1を入力して

RSA 鍵は 1024 から 4096 ビットの長さで可能です。
鍵長は? (2048) 2048
要求された鍵長は2048ビット

鍵長を求められます。鍵長は、暗号化処理において、暗号化と複合化に用いられるデータ(暗号鍵)の大きさになります。
ここもデフォルトの「2048」を入力して。(入力なしの場合はデフォルトで2048が設定されます。)

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

鍵の有効期限です。ここは作成する際のセキュリティ要件に関わってきますので、要件に合わせて期限を設定してください。
ここでは、無期限を設定しておきます。
」を入力して
正しいかどうか聞いてくるので、「」を入力して

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。
 
本名: SOOOTA
電子メール・アドレス: test@sooota.com
コメント: gpgで暗号化と復号化
あなたは文字集合「utf-8」を使っています。
次のユーザIDを選択しました:
    "SOOOTA (gpgで暗号化と復号化) "
 
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O

鍵の識別のため、ユーザ情報を入力していきます。
本名、メールアドレス、コメントを入力します。
最後に変更がなければ、「O(オー)」を入力して

秘密鍵を保護するためにパスフレーズがいります。
 
 ┌─────────────────────────────────────────────────┐
 │ パスフレーズを入力                                  │
 │                                                 │
 │                                                 │
 │ パスフ ************_____________________________ │
 │                                                 │
 │                                     │
 └─────────────────────────────────────────────────┘

パスフレーズが聞かれるため、適当にパスを入力。(2回聞かれます)
ここで記入するパスフレーズは後で使用するので、覚えておきましょう。

たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、
ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に
十分なエントロピーを供給する機会を与えることができます。
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、
ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に
十分なエントロピーを供給する機会を与えることができます。
gpg: /home/gpguser/.gnupg/trustdb.gpg: 信用データベースができました
gpg: 鍵654D5DA9を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。
gpg: 信用データベースの検査
gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/654D5DA9 2016-05-24
   フィンガー・プリント = F861 292C E601 34B9 5342  D874 A0AA 176D 654D 5DA9
uid                  SOOOTA (gpgで暗号化と復号化) 
sub   2048R/B930FC60 2016-05-24

パスフレーズの入力が完了するとここまで一気に出力されます。
ここまでが出力されたら、鍵の作成成功です。
おめでとうございます。

今回はここまでです。
次回は作成した鍵を今度は相手方にインストールする方法です。

作成で出力された全文を記載しておきます。参考にしてください。

 
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/gpguser/.gnupg」が作成されました
gpg: 新しいコンフィグレーション・ファイル「/home/gpguser/.gnupg/gpg.conf」ができました
gpg: *警告*: 「/home/gpguser/.gnupg/gpg.conf」のオプションはこの実行では、まだ有効になりません
gpg: 鍵リング「/home/gpguser/.gnupg/secring.gpg」ができました
gpg: 鍵リング「/home/gpguser/.gnupg/pubring.gpg」ができました
ご希望の鍵の種類を選択してください:
   (1) RSA と RSA (デフォルト)
   (2) DSA と Elgamal
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
あなたの選択は? 1
RSA 鍵は 1024 から 4096 ビットの長さで可能です。
鍵長は? (2048) 2048
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
         0 = 鍵は無期限
        = 鍵は n 日間で期限切れ
      w = 鍵は n 週間で期限切れ
      m = 鍵は n か月間で期限切れ
      y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)0
(null)は無期限です
これで正しいですか? (y/N) y

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

本名: SOOOTA
電子メール・アドレス: test@sooota.com
コメント: gpgで暗号化と復号化
あなたは文字集合「utf-8」を使っています。
次のユーザIDを選択しました:
    "SOOOTA (gpgで暗号化と復号化) "

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
秘密鍵を保護するためにパスフレーズがいります。

 ┌─────────────────────────────────────────────────┐
 │ パスフレーズを入力                                  │
 │                                                 │
 │                                                 │
 │ パスフ ************_____________________________ │
 │                                                 │
 │                                     │
 └─────────────────────────────────────────────────┘

たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、
ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に
十分なエントロピーを供給する機会を与えることができます。
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、
ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に
十分なエントロピーを供給する機会を与えることができます。
gpg: /home/gpguser/.gnupg/trustdb.gpg: 信用データベースができました
gpg: 鍵654D5DA9を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。
gpg: 信用データベースの検査
gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/654D5DA9 2016-05-24
   フィンガー・プリント = F861 292C E601 34B9 5342  D874 A0AA 176D 654D 5DA9
uid                  SOOOTA (gpgで暗号化と復号化) 
sub   2048R/B930FC60 2016-05-24

 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村