DebConf12 のキーサインパーティに参加した後、送られてきた署名付きの鍵をインポートする方法

キーサインパーティの後、お互いに ID を確認し合った相手から、署名付きの鍵が暗号化された状態でメールで届きました。その鍵を復号してインポートし、キーサーバにアップロードしていくまでの手順を書きます(Gmail なので最初の手順が多少手間がかかっています)。

手順

最初に、メール本文の "-----BEGIN PGP MESSAGE-----" の行から "-----END PGP MESSAGE-----" の行までをすべてコピーして、適当なファイル名で保存します。ここでは filename とします。

暗号化されたメールを復号します。

$ gpg filename

You need a passphrase to unlock the secret key for
user: "Tatsuya Oiwa <tatsuyaoiw@gmail.com>"
4096-bit RSA key, ID 3C2D5D73, created 2012-07-05 (main key ID A0E6B4A1)

gpg: gpg-agent is not available in this session
gpg: encrypted with RSA key, ID 5FA62044
gpg: encrypted with 4096-bit RSA key, ID 3C2D5D73, created 2012-07-05
      "Tatsuya Oiwa <tatsuyaoiw@gmail.com>"
gpg: rene: unknown suffix

出力するファイル名を聞かれるので、適当に名前をつけます。

Enter new filename: filename.d

ファイルの中身を見ると、復号化されたメールの本文を読めるようになります。

$ view filename.d

さらに、Content-Disposition: attachment; filename="0xCC9D5AD3A0E6B4A1.1.signed-by-??????????????????.asc" の ??? の部分が相手の公開鍵を表しているので、これをキーサーバから取得して自分の鍵束に追加します。

$ gpg --recv-keys ??????????????????
gpg: requesting key ???????? from hkp server keys.gnupg.net
gpg: key ????????: public key "Anonymous <anonymous@debian.org>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

そして、署名付きの鍵をインポートします。

$ gpg --import filename.d
gpg: key A0E6B4A1: "Tatsuya Oiwa <tatsuyaoiw@gmail.com>" 1 new signature
gpg: Total number processed: 1
gpg:         new signatures: 1
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u

gpg --check-sigs で自分の鍵の署名を確認できます。

$ gpg --check-sigs
/home/tatsuyaoiw/.gnupg/pubring.gpg
-----------------------------------
pub   4096R/A0E6B4A1 2012-07-05
uid                  Tatsuya Oiwa <tatsuyaoiw@gmail.com>
sig!3        A0E6B4A1 2012-07-05  Tatsuya Oiwa <tatsuyaoiw@gmail.com>
sig!         ???????? 2012-07-13  Anonymous <anonymous@debian.org>
sub   4096R/3C2D5D73 2012-07-05
sig!         A0E6B4A1 2012-07-05  Tatsuya Oiwa <tatsuyaoiw@gmail.com>

署名が追加されていることが確認できたら、鍵をキーサーバに登録して完了です。

$ gpg --keyserver pgp.mit.edu --send-keys A0E6B4A1
gpg: sending key A0E6B4A1 to hkp server pgp.mit.edu