Mac OS X 版 Thunderbird 3 と Enigmail で暗号化メール 3

GnuPG 鍵のエクスポートとインポート

Last update: 2009-12-03

設定した鍵(公開鍵と秘密鍵)はファイルとしてエクスポート/インポートを行うことができる。他の方から貰った鍵をインポートしたい場合や、バックアップファイルを使って別の Mac 環境を同じ設定にしたい時にも簡単に行える。もちろん、システムを入れ替えた場合にも有用だ。
ここで出力するファイル形式にはアスキー形式とバイナリ形式があるようだが、アスキー形式をとっておいた方が無難なような気がするので、ここではアスキー形式のみについて書く。

エクスポート

1. Enigmail からエクスポート

Enigmail のメニューから鍵をエクスポートすることができる。これが一番簡単な方法だろう。

  1. Thunderbird メニューの OpenPGP をプルダウン、鍵の管理をよび出す。
  2. OpenPGP 鍵の管理ウィンドウに何も表示されていない場合は、テキストボックスにユーザ名かメールアドレスを入力すると表示される。エクスポートたい鍵をリストに表示されたものの中から選択して、メニューのファイルから「ファイルへ鍵を書き出す」を選択する。
  3. エクスポートは「公開鍵のみエクスポート」と「秘密鍵を含めてエクスポート」の2種類より選択する。バックアップが目的なら「秘密鍵を含めて…」を選択すればよい。

    にしても、このダイアログは Mac 用になっていないよね。ここだけ表記がエクスポートだし。ちなみにショートカットは効かない。
  4. 保存先を聞いてくるので、適当な場所に保存して外部記録メディアなどに保存しておこう。

2. Terminal.app を使用してエクスポート

公開鍵と秘密鍵のエクスポーはそれぞれコマンドが異なるので注意。じつは、私はこれで躓いて不断さんに助けていただいた。これはそのまとめ。
以下、赤字で表示しているケ所、example@hogehoge.com にはユーザ ID に使用したメールアドレスを、xxxxxx には書き出すファイル名に入れ替えてくだされ。

1. 公開鍵のエクスポート
Terminal.app の画面、$ に続いてgpg -a --export example@hogehoge.com > xxxxxx.ascと入力してリターンキーを押す。画面には何も表示されないが、Home/ 下に xxxxxx.asc というファイルが書き出される。
2. 秘密鍵のエクスポート
Terminal.app の画面、$ に続いてgpg -a --export-secret-key example@hogehoge.com > xxxxxx.ascと入力してリターンキーを押す。画面には何も表示されないが、Home/ 下に xxxxxx.asc というファイルが書き出される。
3. 鍵ペア (秘密鍵と公開鍵) のエクスポート
鍵ペアとしてインポートする場合に必要。で、これは秘密鍵→公開鍵という順番になっていなければいけない。上記で書き出したファイルを結合してもよいが、不断さんから結合方法を教わったので書いておく。
Terminal.app の画面、$ に続いてgpg -a --export-secret-key example@hogehoge.com > xxxxxx.ascと入力してリターンキーを押す。$ の後に続き、さらにgpg -a --export example@hogehoge.com >> xxxxxx.ascと入力してリターンキーを押す 画面には何も表示されないが、Home/ 下にxxxxxx.asc というファイルが書き出される。
  • 2つのコマンドラインに注意すること。
  • xxxxxx は同名でなければならない。

インポート

1. Enigmail でインポート

  1. Thunderbird メニューの OpenPGP をプルダウン、鍵の管理をよび出す。
  2. 鍵の管理ウィンドウが表示されたらメニューのファイルから「鍵をファイルから読み込む」を選択する。
  3. 保存した鍵ファイル、または貰った鍵ファイルを選択ダイアログから指定して読み込ませると完了。
  4. インポートした鍵は所有者の信用度が「Unknown」となっているので、自分の鍵などは変更しておこう。メニューの編集から「所有者の信用を付与」を選択する。
  5. 自分の鍵は「絶対的に信用する」だ。他の方から貰った鍵は条件に合わせて選択するとよい。

インポート作業はこれで終わり。なお、鍵の管理についてはメニューの表示から呼び出せる「鍵のプロパティ」でまとめて管理することもできる。使い分けはお好みというところでしょうか。

2. Terminal.app からインポート

これも公開鍵と秘密鍵のコマンドが異なるので注意すること。

1. 公開鍵のインポート
xxxxxx.asc は、1 でエクスポートした公開鍵のファイル名に置き換える。またファイルの場所は Home/ 下に置かれていること。でなければパスを指定する。
Terminal.app の画面、$ に続いてgpg --import xxxxxx.ascと入力してリターンキーを押す。成功すると画面にはこのように表示される。
gpg: key xxxxxxxx: public key Hide Kay <test@inchiki.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
2. 秘密鍵のインポート
xxxxxx.asc は、2 でエクスポートした秘密鍵のファイル名に置き換える。またファイルの場所は Home/ 下に置かれていること。でなければパスを指定する。
Terminal.app の画面、$ に続いてgpg --import --allow-secret-key-import xxxxxx.ascと入力してリターンキーを押す。成功すると画面にはこのように表示される。
gpg: key XXXXXXXX: secret key imported gpg: key XXXXXXXX: "Hide Kay <test@inchiki.com>" not changed gpg: Total number processed: 1 gpg: unchanged: 1 gpg: secret keys read: 1 gpg: secret keys imported: 1
3. 鍵ペアのインポート
xxxxxx.asc は、3 でエクスポートした鍵ペアのファイル名に置き換える。またファイルの場所は Home/ 下に置かれていること。でなければパスを指定する。
Terminal.app の画面、$ に続いてgpg --import --allow-secret-key-import xxxxxx.ascと入力してリターンキーを押す。成功すると画面にはこのように表示される。
gpg: key XXXXXXXX: secret key imported gpg: key XXXXXXXX: public key "Hide Kay <test@inchiki.com>" imported gpg: key XXXXXXXX: "Hide Kay <test@inchiki.com>" not changed gpg: Total number processed: 2 gpg: imported: 1 (RSA: 1) gpg: unchanged: 1 gpg: secret keys read: 1 gpg: secret keys imported: 1

鍵の情報を確認して、秘密鍵の信用情報を変更する

何れのインポートでも、Terminal の処理の後には鍵の情報の確認と、インポート後の秘密鍵は「信用」が[unknown] となっているので、これを変更しておく。

インポートした鍵の情報を確認する
Terminal.app の画面、$ に続いてgpg --list-keyと入力してリターンキーを押すと、画面にはこのように表示される。
/Users/Users Name/.gnupg/pubring.gpg ----------------------------- pub XXXXX/XXXXXXXX YYYY-MM-DD uid Hide Kay <test@inchiki.com> sub XXXXX/XXXXXXXX YYYY-MM-DD [expires: YYYY-MM-DD]
秘密鍵の信用情報を変更する
秘密鍵の ID (Secret Key's ID) は、上の sub に続く XXXXX/XXXXXXXX パープルの英数文字列を入力する。
Terminal.app の画面、$ に続いてgpg --edit-key Secret Key's IDと入力してリターンキーを押す。成功すると画面にはこのように表示される。
gpg (GnuPG/MacGPG2) 2.0.12; Copyright (C) 2009 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. pub XXXXXX/XXXXXXXX created: YYYY-MM-DD expires: never usage: SCA trust: unknown validity: unknown sub XXXXXX/XXXXXXXX created: YYYY-MM-DD expires: YYYY-MM-DD usage: E [ unknown] (1). Hide Kay <test@inchiki.com> Command>
Command には trust と入力すると 5 つの信用度の中から選択するよう指示が出る。
Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.) 1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu
これは自分の鍵だから絶対的に信用する 5 を選択する。
ホントに 5 にするの?本当に信頼するの?と聞いてくる。
Your decision? 5 Do you really want to set this key to ultimate trust? (y/N)
決定する場合は y を、しない場合は N を入力する。
y を入力すると情報が表示される(終了するまで反映されないと出るかもしれない)
pub XXXXXX/XXXXXXXX created: YYYY-MM-DD expires: never usage: SCA trust: unknown validity: ultimate sub XXXXXX/XXXXXXXX created: YYYY-MM-DD expires: YYYY-MM-DD usage: E [ unknown] (1). Hide Kay <test@inchiki.com> Command>
Command の後に quit と入力して、次の $ の後に exit でTerminal を終了する。

以上でインポートした秘密鍵の信用度の変更は完了。

Return to Top