トップページ >  PGP >  GnuPGのコマンド >  鍵の読み出し/書き出し(ネット版)
初版2009/09/01: 最終更新日2009/09/01
4-6.  鍵の読み出し/書き出し(ネット版)
目次
鍵をネットワーク上で管理する利点
--recv-keys
--send-keys
--search-keys
--refresh-keys
鍵をネットワーク上で管理する利点
インターネット上の鍵サーバーに公開鍵をアップロードすることで、世界中どこからでも公開鍵にアクセスできるようになります。
利用するための作業内容もスマートで勝手がよく、誰でも鍵IDやユーザーIDを知るだけで、簡単に公開鍵を得られるのが大きな利点です。

ただし、手軽さゆえに「成りすまし」というリスクもあるので、電子指紋などできっちり対応しておくことも大切です。
鍵サーバーやインターネット回線側の都合によって、利用不能になることもあります。

作業フォルダの設定
--recv-keysは、インターネット上の鍵サーバーから公開鍵を検索し、手に入れるためのコマンドです。

コマンドは以下のように入力します。

gpg --keyserver [鍵サーバーのアドレス] --recv-keys [鍵ID]

例:
gpg --keyserver pgp.nic.ad.jp --recv-keys D6ABB386

入力すると、指定の鍵サーバーに接続し、以下のように情報が現れます。

例:
gpg: 鍵D6ABB386をhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵D6ABB386: 公開鍵“Example Taro (I'm very Taro) <example_taro@example.com>”を読み込みました
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg:    処理数の合計: 1
gpg:          読込み: 1  (RSA: 1)

指定した公開鍵を持っている場合は、鍵が最新のものであるかを確認した後にダウンロードをおこなえます。

コマンドの基本
--send-keysは、手持ちの公開鍵をインターネット上の鍵サーバーにアップロードするためのコマンドです。

コマンドは以下のように入力します。

gpg --keyserver [鍵サーバーのアドレス] --send-keys [鍵ID]

例:
gpg --keyserver pgp.nic.ad.jp --send-keys D6ABB386

入力後、以下のようなメッセージが表示されればアップロード成功です。

例:
gpg: 鍵D6ABB386をhkpサーバーpgp.nic.ad.jpへ送信

アップロードが完了した鍵は、同ページ「--search-keys」により多角的におこなうことが可能です。

--search-keys
--search-keysは、インターネット上の鍵サーバーに接続し、検索により目的の鍵を手に入れるためのコマンドです。
同ページ「--recv-keys」との違いは、検索をおこなうということのみです。

コマンドは以下のように入力します。

gpg --keyserver [鍵サーバーのアドレス] --search-keys [検索語句]

例:
gpg --keyserver pgp.nic.ad.jp --search-keys D6ABB386
gpg --keyserver pgp.nic.ad.jp --search-keys I'm very Taro
gpg --keyserver pgp.nic.ad.jp --search-keys example_taro@example.com

検索語句には、鍵ID、ユーザーID、ユーザー名、コメント、メールアドレスやその一部が利用できます。

検索後、以下のような情報が表示されます。

gpg: “[検索語句]”をhkpサーバー[鍵サーバーのアドレス]から検索
([検索候補番号])     [ユーザー名] ([コメント]) <[メールアドレス]>
          鍵のビット数 [鍵の種類] key [鍵ID], [作成年]-[月]-[日]
([検索候補番号])     [ユーザー名] ([コメント]) <[メールアドレス]>
          鍵のビット数 [鍵の種類] key [鍵ID], [作成年]-[月]-[日]
番号(s)、N)次、またはQ)中止を入力してください >



例:
gpg: “ro@example.com”をhkpサーバーpgp.nic.ad.jpから検索
(1)     Example Taro (I'm very Taro) <example_taro@example.com>
          1024 bit DSA key D6ABB386, 作成: 2009-07-27
(2)     Example Jiro (I'm not Taro) <jiro@example.com>
          1024 bit DSA key ZZZZZZZZ, 作成: 2005-08-15
番号(s)、N)次、またはQ)中止を入力してください >

ここで検索候補番号を入力すると、以下のように公開鍵の情報が現れ、鍵を入手することができます。

例:
gpg: 鍵D6ABB386をhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵D6ABB386: 公開鍵“Example Taro (I'm very Taro) <example_taro@example.com>”を読み込みました
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg:    処理数の合計: 1
gpg:          読込み: 1  (RSA: 1)

指定した公開鍵を持っている場合は、鍵が最新のものであるかを確認した後にダウンロードをおこなえます。

--refresh-keys
--refresh-keysは、インターネット上の鍵サーバーに接続し、保持している全ての公開鍵の最新版を手に入れるためのコマンドです。

gpg --keyserver [鍵サーバーのアドレス] --refresh-keys

例:
gpg --keyserver pgp.nic.ad.jp --refresh-keys

コマンドを入力すると、指定の鍵サーバーに接続して更新を確認します。

gpg: [鍵の数]本の鍵をhlp://[鍵サーバーのアドレス]から回復
gpg: 鍵[鍵ID]をhkpからサーバー[鍵サーバーのアドレス]に要求
gpg: 鍵[鍵ID]をhkpからサーバー[鍵サーバーのアドレス]に要求

例:
gpg: 3本の鍵をhlp://pgp.nic.ad.jpから回復
gpg: 鍵XXXXXXXXをhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵YYYYYYYYをhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵ZZZZZZZZをhkpからサーバーpgp.nic.ad.jpに要求

この時点で鍵サーバーにアクセスします。
アクセス中はしばらく時間が空き、鍵の更新があれば鍵のダウンロードをおこなえます。

特筆すべきことは何もない、とても便利で手軽なコマンドです。