「GNU Privacy Guard」の版間の差分
提供: セキュリティ
(→関連項目) |
|||
行8: | 行8: | ||
== 概要 == | == 概要 == | ||
+ | [[GNU Privacy Guard]] (GPG, GnuPG))とは、[[Pretty Good Privacy]](PGP)の別の実装です。 | ||
+ | |||
+ | [[gpg]]は、以下のアルゴリズムをサポートしています。 | ||
+ | ;[[公開鍵]]: RSA, ELG, DSA | ||
+ | ;[[暗号アルゴリズム|暗号方式]]: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 | ||
+ | ;[[ハッシュ]]: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 | ||
+ | ;[[圧縮]]: 無圧縮, [[ZIP]], ZLIB, BZIP2 | ||
== インストール == | == インストール == | ||
[[Linux]]にデフォルトでインストールされています。 | [[Linux]]にデフォルトでインストールされています。 | ||
+ | {{pkg|gnupg pinentry-curses}} | ||
== 使い方 == | == 使い方 == | ||
=== gpg === | === gpg === | ||
行92: | 行100: | ||
Please report bugs to <http://bugs.gnupg.org>. | Please report bugs to <http://bugs.gnupg.org>. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | gpg (GnuPG) 2.0.22 | ||
+ | libgcrypt 1.5.3 | ||
+ | Copyright (C) 2013 Free Software Foundation, Inc. | ||
+ | License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> | ||
+ | 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 [オプション] [ファイル] | ||
+ | 署名、検査、暗号化や復号 | ||
+ | デフォルトの操作は、入力データに依存 | ||
+ | |||
+ | コマンド: | ||
+ | |||
+ | -s, --sign 署名を作成 | ||
+ | --clearsign クリア・テクスト署名を作成 | ||
+ | -b, --detach-sign 分離署名を作成 | ||
+ | -e, --encrypt データを暗号化 | ||
+ | -c, --symmetric 暗号化には共通鍵暗号方式のみを使用 | ||
+ | -d, --decrypt データを復号 (デフォルト) | ||
+ | --verify 署名を検証 | ||
+ | -k, --list-keys 鍵の一覧 | ||
+ | --list-sigs 鍵と署名の一覧 | ||
+ | --check-sigs 鍵署名の検査と一覧 | ||
+ | --fingerprint 鍵とフィンガー・プリントの一覧 | ||
+ | -K, --list-secret-keys 秘密鍵の一覧 | ||
+ | --gen-key 新しい鍵対を生成 | ||
+ | --gen-revoke 失効証明書を生成 | ||
+ | --delete-keys 公開鍵リングから鍵を削除 | ||
+ | --delete-secret-keys 秘密鍵リングから鍵を削除 | ||
+ | --sign-key 鍵に署名 | ||
+ | --lsign-key 鍵へ内部的に署名 | ||
+ | --edit-key 鍵への署名や編集 | ||
+ | --passwd パスフレーズの変更 | ||
+ | --export 鍵をエクスポートする | ||
+ | --send-keys 鍵サーバに鍵をエクスポートする | ||
+ | --recv-keys 鍵サーバから鍵をインポートする | ||
+ | --search-keys 鍵サーバの鍵を検索する | ||
+ | --refresh-keys 鍵サーバから鍵を全部更新する | ||
+ | --import 鍵のインポート/マージ | ||
+ | --card-status カード・ステイタスを表示 | ||
+ | --card-edit カードのデータを変更 | ||
+ | --change-pin カードのPINを変更 | ||
+ | --update-trustdb 信用データベースを更新 | ||
+ | --print-md メッセージ・ダイジェストを表示 | ||
+ | --server サーバ・モードで実行 | ||
+ | |||
+ | オプション: | ||
+ | |||
+ | -a, --armor ASCII形式の外装を作成 | ||
+ | -r, --recipient USER-ID USER-ID用に暗号化 | ||
+ | -u, --local-user USER-ID 署名や復号にこのUSER-IDを使用 | ||
+ | -z N 圧縮レベルをNに設定 (0は非圧縮) | ||
+ | --textmode 正準テキスト・モードを使用 | ||
+ | -o, --output FILE 出力をFILEに書き出す | ||
+ | -v, --verbose 冗長 | ||
+ | -n, --dry-run 無変更 | ||
+ | -i, --interactive 上書き前に確認 | ||
+ | --openpgp 厳密なOpenPGPの振舞を採用 | ||
+ | |||
+ | (コマンドとオプション全部の一覧は、マニュアル・ページをご覧ください) | ||
+ | |||
+ | 例: | ||
+ | |||
+ | -se -r Bob [ファイル] ユーザBobへ署名と暗号化 | ||
+ | --clearsign [ファイル] クリア・テクスト署名を作成 | ||
+ | --detach-sign [ファイル] 分離署名を作成 | ||
+ | --list-keys [名前] 鍵を表示 | ||
+ | --fingerprint [名前] フィンガー・プリントを表示 | ||
+ | |||
+ | バグは <http://bugs.gnupg.org> までご報告ください。 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 鍵の作成 === | === 鍵の作成 === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. | |
− | gpg (GnuPG) 2.0. | + | |
This is free software: you are free to change and redistribute it. | This is free software: you are free to change and redistribute it. | ||
There is NO WARRANTY, to the extent permitted by law. | There is NO WARRANTY, to the extent permitted by law. | ||
+ | ご希望の鍵の種類を選択してください: | ||
+ | (1) RSA と RSA (デフォルト) | ||
+ | (2) DSA と Elgamal | ||
+ | (3) DSA (署名のみ) | ||
+ | (4) RSA (署名のみ) | ||
+ | あなたの選択は? | ||
+ | RSA 鍵は 1024 から 4096 ビットの長さで可能です。 | ||
+ | 鍵長は? (2048) | ||
+ | 要求された鍵長は2048ビット | ||
+ | 鍵の有効期限を指定してください。 | ||
+ | 0 = 鍵は無期限 | ||
+ | <n> = 鍵は n 日間で期限切れ | ||
+ | <n>w = 鍵は n 週間で期限切れ | ||
+ | <n>m = 鍵は n か月間で期限切れ | ||
+ | <n>y = 鍵は n 年間で期限切れ | ||
+ | 鍵の有効期間は? (0) | ||
+ | は無期限です | ||
+ | これで正しいですか? (y/N) y | ||
+ | |||
+ | GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。 | ||
+ | |||
+ | 本名: kaoru | ||
+ | 電子メール・アドレス: foo@bar.com | ||
+ | コメント: test | ||
+ | 次のユーザIDを選択しました: | ||
+ | "kaoru (test) <foo@bar.com>" | ||
+ | |||
+ | 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o | ||
+ | 秘密鍵を保護するためにパスフレーズがいります。 | ||
+ | |||
+ | |||
+ | ┌─────────────────────────────────────────────────┐ | ||
+ | │ このパスフレーズをもう一度入力してください │ | ||
+ | │ │ | ||
+ | │ パスフレーズ ___________________________________│ | ||
+ | │ │ | ||
+ | │ <OK> <Cancel> │ | ||
+ | └─────────────────────────────────────────────────┘ | ||
+ | |||
+ | たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 | ||
+ | ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、 | ||
+ | 乱数生成器に十分なエントロピーを供給する機会を与えることができます。 | ||
+ | たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 | ||
+ | ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に | ||
+ | 十分なエントロピーを供給する機会を与えることができます。 | ||
+ | |||
+ | gpg: /home/kaoru/.gnupg/trustdb.gpg: 信用データベースができました | ||
+ | gpg: 鍵EB939698を絶対的に信用するよう記録しました | ||
+ | 公開鍵と秘密鍵を作成し、署名しました。 | ||
+ | gpg: 信用データベースの検査 | ||
+ | gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル | ||
+ | gpg: 深さ: 0 有効性: 1 | ||
+ | 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u pub 2048R/EB939698 2014-03-22 | ||
+ | フィンガー・プリント = 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 uid | ||
+ | kaoru (test) <foo@bar.com> sub 2048R/436B4C25 2014-03-22 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 鍵の確認 === | ||
+ | ==== 秘密鍵 ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | gpg --list-secret-keys | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg --list-secret-keys | ||
+ | /home/kaoru/.gnupg/secring.gpg | ||
+ | ------------------------------- | ||
+ | sec 2048R/EB939698 2014-03-22 | ||
+ | uid kaoru (test) <foo@bar.com> | ||
+ | ssb 2048R/436B4C25 2014-03-22 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | ==== 公開鍵 ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg --list-keys | ||
+ | /home/kaoru/.gnupg/pubring.gpg | ||
+ | ------------------------------- | ||
+ | pub 2048R/EB939698 2014-03-22 | ||
+ | uid kaoru (test) <foo@bar.com> | ||
+ | sub 2048R/436B4C25 2014-03-22 | ||
+ | </syntaxhighlight> | ||
+ | === 公開鍵のエクスポート === | ||
+ | [[公開鍵]]をエクスポートします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg -o ./kaoru.pub --export kaoru | ||
+ | $ ls kaoru.pub | ||
+ | kaoru.pub | ||
+ | $ file kaoru.pub | ||
+ | kaoru.pub: GPG key public ring | ||
+ | </syntaxhighlight> | ||
+ | === 秘密鍵のエクスポート === | ||
+ | [[秘密鍵]]([[プライベート鍵]])をエクスポートするときは、以下のコマンドで行います。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg -o file.secret --export-secret-key kaoru | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 秘密鍵のインポート === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg --import file.secret | ||
+ | </syntaxhighlight> | ||
+ | === 公開鍵のインポート === | ||
+ | user で kaoru の公開鍵 kaoru.pub をインポートします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | % gpg --import kaoru.pub | ||
gpg: directory `/home/user/.gnupg' created | gpg: directory `/home/user/.gnupg' created | ||
gpg: new configuration file `/home/user/.gnupg/gpg.conf' created | gpg: new configuration file `/home/user/.gnupg/gpg.conf' created | ||
行105: | 行297: | ||
gpg: keyring `/home/user/.gnupg/secring.gpg' created | gpg: keyring `/home/user/.gnupg/secring.gpg' created | ||
gpg: keyring `/home/user/.gnupg/pubring.gpg' created | gpg: keyring `/home/user/.gnupg/pubring.gpg' created | ||
− | + | gpg: /home/user/.gnupg/trustdb.gpg: trustdb created | |
− | + | gpg: key EB939698: public key "kaoru (test) <foo@bar.com>" imported | |
− | + | gpg: Total number processed: 1 | |
− | + | gpg: imported: 1 (RSA: 1) | |
− | + | </syntaxhighlight> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | === データの暗号化 === | |
+ | テスト用のファイルを用意します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | % echo 'clear text' > test.txt | ||
+ | </syntaxhighlight> | ||
− | + | 使用する鍵を指定して実行します。 | |
− | + | ユーザー userが kaoru の鍵を用いて、test.txtを暗号化します。test.txt.gpgというファイルが作成されます。 | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | user@a1:~/tmp % gpg -e -r kaoru test.txt | |
− | + | gpg: 436B4C25: There is no assurance this key belongs to the named user | |
− | + | pub 2048R/436B4C25 2014-03-22 kaoru (test) <foo@bar.com> | |
+ | Primary key fingerprint: 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 | ||
+ | Subkey fingerprint: 7C0E 6415 97E8 747F D5B8 F394 F2C3 6406 436B 4C25 | ||
+ | |||
+ | It is NOT certain that the key belongs to the person named | ||
+ | in the user ID. If you *really* know what you are doing, | ||
+ | you may answer the next question with yes. | ||
+ | |||
+ | Use this key anyway? (y/N) y | ||
+ | user@a1:~/tmp % ls -l | ||
+ | total 12 | ||
+ | -rw-r--r-- 1 user user 1178 Mar 22 19:18 kaoru.pub | ||
+ | -rw-r--r-- 1 user user 11 Mar 22 19:21 test.txt | ||
+ | -rw-r--r-- 1 user user 351 Mar 22 19:22 test.txt.gpg | ||
+ | user@a1:~/tmp % file test.txt.gpg | ||
+ | test.txt.gpg: data | ||
+ | </syntaxhighlight> | ||
+ | === データの復号化 === | ||
+ | 復号化するときに、[[パスフレーズ]]の入力画面が表示されます。 | ||
+ | 復号したデータの出力ファイルを -o オプションで指定します。出力ファイルを指定しない場合は、[[標準出力]]に表示されます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg -r kaoru -d -o test.txt test.txt.gpg | ||
+ | |||
+ | ここで、パスフレーズの入力のダイアログが表示されます。 | ||
+ | |||
+ | gpg: 2048-ビットRSA鍵, ID 436B4C25, 日付2014-03-22に暗号化されました | ||
+ | "kaoru (test) <foo@bar.com>" | ||
+ | $ ls -l | ||
+ | total 12 | ||
+ | -rw-r--r-- 1 kaoru user 1178 3月 22 19:14 kaoru.pub | ||
+ | -rw-r--r-- 1 kaoru user 11 3月 22 19:25 test.txt | ||
+ | -rw-r--r-- 1 kaoru user 351 3月 22 19:24 test.txt.gpg | ||
+ | $ cat test.txt | ||
+ | clear text | ||
+ | </syntaxhighlight> | ||
+ | === 鍵の削除 === | ||
+ | [[公開鍵]]と[[秘密鍵]]の削除方法は、以下の通りです。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ gpg --delete-keys keyname | ||
+ | $ gpg --delete-secret-keys keyname | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == FAQ == | ||
+ | === can't connect to the PIN entry module === | ||
+ | pinentry-curses を入れてない場合、以下のエラーで gpg --gen-key が終了します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | gpg-agent[40930]: can't connect to the PIN entry module: IPCの接続コールに失敗しました | ||
+ | gpg-agent[40930]: command get_passphrase failed: PIN 入力がありません | ||
+ | gpg: エージェントに問題: PIN 入力がありません | ||
+ | gpg: 鍵の生成が取り消されました。 | ||
+ | [1] 40913 exit 2 gpg --gen-key | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 英語で表示される場合は、以下のエラーメッセージになります。 | ||
+ | <syntaxhighlight lang="bash"> | ||
You need a Passphrase to protect your secret key. | You need a Passphrase to protect your secret key. | ||
行142: | 行379: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== can't connect to .gnupg/S.gpg-agent: No such file or directory === | === can't connect to .gnupg/S.gpg-agent: No such file or directory === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行170: | 行406: | ||
== 関連項目 == | == 関連項目 == | ||
{{gpg}} | {{gpg}} | ||
− | <!-- vim: filetype=mediawiki --> | + | <!-- vim: filetype=mediawiki |
+ | --> |
2014年3月22日 (土) 20:18時点における版
GNU Privacy Guard (GPG, GnuPG))とは、Pretty Good Privacy(PGP)の別の実装です。
読み方
- GNU Privacy Guard
- ぐにゅー ぷらいばしー がーど
- GPG
- じーぴーじー
- GnuPG
- ぐにゅーぴーじー
概要
GNU Privacy Guard (GPG, GnuPG))とは、Pretty Good Privacy(PGP)の別の実装です。
gpgは、以下のアルゴリズムをサポートしています。
- 公開鍵
- RSA, ELG, DSA
- 暗号方式
- IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
- ハッシュ
- MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
- 圧縮
- 無圧縮, ZIP, ZLIB, BZIP2
インストール
Linuxにデフォルトでインストールされています。
FreeBSDにインストールする場合
pkgコマンドでインストールする場合
sudo pkg install gnupg pinentry-curses
使い方
gpg
$ gpg --help gpg (GnuPG) 2.0.14 libgcrypt 1.4.5 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: ~/.gnupg Supported algorithms: Pubkey: RSA, ELG, DSA Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2 Syntax: gpg [options] [files] sign, check, encrypt or decrypt default operation depends on the input data Commands: -s, --sign make a signature --clearsign make a clear text signature -b, --detach-sign make a detached signature -e, --encrypt encrypt data -c, --symmetric encryption only with symmetric cipher -d, --decrypt decrypt data (default) --verify verify a signature -k, --list-keys list keys --list-sigs list keys and signatures --check-sigs list and check key signatures --fingerprint list keys and fingerprints -K, --list-secret-keys list secret keys --gen-key generate a new key pair --delete-keys remove keys from the public keyring --delete-secret-keys remove keys from the secret keyring --sign-key sign a key --lsign-key sign a key locally --edit-key sign or edit a key --gen-revoke generate a revocation certificate --export export keys --send-keys export keys to a key server --recv-keys import keys from a key server --search-keys search for keys on a key server --refresh-keys update all keys from a keyserver --import import/merge keys --card-status print the card status --card-edit change data on a card --change-pin change a card's PIN --update-trustdb update the trust database --print-md print message digests --server run in server mode Options: -a, --armor create ascii armored output -r, --recipient USER-ID encrypt for USER-ID -u, --local-user USER-ID use USER-ID to sign or decrypt -z N set compress level to N (0 disables) --textmode use canonical text mode -o, --output FILE write output to FILE -v, --verbose verbose -n, --dry-run do not make any changes -i, --interactive prompt before overwriting --openpgp use strict OpenPGP behavior (See the man page for a complete listing of all commands and options) Examples: -se -r Bob [file] sign and encrypt for user Bob --clearsign [file] make a clear text signature --detach-sign [file] make a detached signature --list-keys [names] show keys --fingerprint [names] show fingerprints Please report bugs to <http://bugs.gnupg.org>.
gpg (GnuPG) 2.0.22 libgcrypt 1.5.3 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 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 [オプション] [ファイル] 署名、検査、暗号化や復号 デフォルトの操作は、入力データに依存 コマンド: -s, --sign 署名を作成 --clearsign クリア・テクスト署名を作成 -b, --detach-sign 分離署名を作成 -e, --encrypt データを暗号化 -c, --symmetric 暗号化には共通鍵暗号方式のみを使用 -d, --decrypt データを復号 (デフォルト) --verify 署名を検証 -k, --list-keys 鍵の一覧 --list-sigs 鍵と署名の一覧 --check-sigs 鍵署名の検査と一覧 --fingerprint 鍵とフィンガー・プリントの一覧 -K, --list-secret-keys 秘密鍵の一覧 --gen-key 新しい鍵対を生成 --gen-revoke 失効証明書を生成 --delete-keys 公開鍵リングから鍵を削除 --delete-secret-keys 秘密鍵リングから鍵を削除 --sign-key 鍵に署名 --lsign-key 鍵へ内部的に署名 --edit-key 鍵への署名や編集 --passwd パスフレーズの変更 --export 鍵をエクスポートする --send-keys 鍵サーバに鍵をエクスポートする --recv-keys 鍵サーバから鍵をインポートする --search-keys 鍵サーバの鍵を検索する --refresh-keys 鍵サーバから鍵を全部更新する --import 鍵のインポート/マージ --card-status カード・ステイタスを表示 --card-edit カードのデータを変更 --change-pin カードのPINを変更 --update-trustdb 信用データベースを更新 --print-md メッセージ・ダイジェストを表示 --server サーバ・モードで実行 オプション: -a, --armor ASCII形式の外装を作成 -r, --recipient USER-ID USER-ID用に暗号化 -u, --local-user USER-ID 署名や復号にこのUSER-IDを使用 -z N 圧縮レベルをNに設定 (0は非圧縮) --textmode 正準テキスト・モードを使用 -o, --output FILE 出力をFILEに書き出す -v, --verbose 冗長 -n, --dry-run 無変更 -i, --interactive 上書き前に確認 --openpgp 厳密なOpenPGPの振舞を採用 (コマンドとオプション全部の一覧は、マニュアル・ページをご覧ください) 例: -se -r Bob [ファイル] ユーザBobへ署名と暗号化 --clearsign [ファイル] クリア・テクスト署名を作成 --detach-sign [ファイル] 分離署名を作成 --list-keys [名前] 鍵を表示 --fingerprint [名前] フィンガー・プリントを表示 バグは <http://bugs.gnupg.org> までご報告ください。
鍵の作成
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. ご希望の鍵の種類を選択してください: (1) RSA と RSA (デフォルト) (2) DSA と Elgamal (3) DSA (署名のみ) (4) RSA (署名のみ) あなたの選択は? RSA 鍵は 1024 から 4096 ビットの長さで可能です。 鍵長は? (2048) 要求された鍵長は2048ビット 鍵の有効期限を指定してください。 0 = 鍵は無期限 <n> = 鍵は n 日間で期限切れ <n>w = 鍵は n 週間で期限切れ <n>m = 鍵は n か月間で期限切れ <n>y = 鍵は n 年間で期限切れ 鍵の有効期間は? (0) は無期限です これで正しいですか? (y/N) y GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。 本名: kaoru 電子メール・アドレス: foo@bar.com コメント: test 次のユーザIDを選択しました: "kaoru (test) <foo@bar.com>" 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o 秘密鍵を保護するためにパスフレーズがいります。 ┌─────────────────────────────────────────────────┐ │ このパスフレーズをもう一度入力してください │ │ │ │ パスフレーズ ___________________________________│ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────┘ たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、 乱数生成器に十分なエントロピーを供給する機会を与えることができます。 たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に 十分なエントロピーを供給する機会を与えることができます。 gpg: /home/kaoru/.gnupg/trustdb.gpg: 信用データベースができました gpg: 鍵EB939698を絶対的に信用するよう記録しました 公開鍵と秘密鍵を作成し、署名しました。 gpg: 信用データベースの検査 gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u pub 2048R/EB939698 2014-03-22 フィンガー・プリント = 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 uid kaoru (test) <foo@bar.com> sub 2048R/436B4C25 2014-03-22
鍵の確認
秘密鍵
gpg --list-secret-keys
$ gpg --list-secret-keys /home/kaoru/.gnupg/secring.gpg ------------------------------- sec 2048R/EB939698 2014-03-22 uid kaoru (test) <foo@bar.com> ssb 2048R/436B4C25 2014-03-22
公開鍵
$ gpg --list-keys /home/kaoru/.gnupg/pubring.gpg ------------------------------- pub 2048R/EB939698 2014-03-22 uid kaoru (test) <foo@bar.com> sub 2048R/436B4C25 2014-03-22
公開鍵のエクスポート
公開鍵をエクスポートします。
$ gpg -o ./kaoru.pub --export kaoru $ ls kaoru.pub kaoru.pub $ file kaoru.pub kaoru.pub: GPG key public ring
秘密鍵のエクスポート
秘密鍵(プライベート鍵)をエクスポートするときは、以下のコマンドで行います。
$ gpg -o file.secret --export-secret-key kaoru
秘密鍵のインポート
$ gpg --import file.secret
公開鍵のインポート
user で kaoru の公開鍵 kaoru.pub をインポートします。
% gpg --import kaoru.pub gpg: directory `/home/user/.gnupg' created gpg: new configuration file `/home/user/.gnupg/gpg.conf' created gpg: WARNING: options in `/home/user/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/home/user/.gnupg/secring.gpg' created gpg: keyring `/home/user/.gnupg/pubring.gpg' created gpg: /home/user/.gnupg/trustdb.gpg: trustdb created gpg: key EB939698: public key "kaoru (test) <foo@bar.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
データの暗号化
テスト用のファイルを用意します。
% echo 'clear text' > test.txt
使用する鍵を指定して実行します。 ユーザー userが kaoru の鍵を用いて、test.txtを暗号化します。test.txt.gpgというファイルが作成されます。
user@a1:~/tmp % gpg -e -r kaoru test.txt gpg: 436B4C25: There is no assurance this key belongs to the named user pub 2048R/436B4C25 2014-03-22 kaoru (test) <foo@bar.com> Primary key fingerprint: 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 Subkey fingerprint: 7C0E 6415 97E8 747F D5B8 F394 F2C3 6406 436B 4C25 It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y user@a1:~/tmp % ls -l total 12 -rw-r--r-- 1 user user 1178 Mar 22 19:18 kaoru.pub -rw-r--r-- 1 user user 11 Mar 22 19:21 test.txt -rw-r--r-- 1 user user 351 Mar 22 19:22 test.txt.gpg user@a1:~/tmp % file test.txt.gpg test.txt.gpg: data
データの復号化
復号化するときに、パスフレーズの入力画面が表示されます。 復号したデータの出力ファイルを -o オプションで指定します。出力ファイルを指定しない場合は、標準出力に表示されます。
$ gpg -r kaoru -d -o test.txt test.txt.gpg ここで、パスフレーズの入力のダイアログが表示されます。 gpg: 2048-ビットRSA鍵, ID 436B4C25, 日付2014-03-22に暗号化されました "kaoru (test) <foo@bar.com>" $ ls -l total 12 -rw-r--r-- 1 kaoru user 1178 3月 22 19:14 kaoru.pub -rw-r--r-- 1 kaoru user 11 3月 22 19:25 test.txt -rw-r--r-- 1 kaoru user 351 3月 22 19:24 test.txt.gpg $ cat test.txt clear text
鍵の削除
$ gpg --delete-keys keyname $ gpg --delete-secret-keys keyname
FAQ
can't connect to the PIN entry module
pinentry-curses を入れてない場合、以下のエラーで gpg --gen-key が終了します。
gpg-agent[40930]: can't connect to the PIN entry module: IPCの接続コールに失敗しました gpg-agent[40930]: command get_passphrase failed: PIN 入力がありません gpg: エージェントに問題: PIN 入力がありません gpg: 鍵の生成が取り消されました。 [1] 40913 exit 2 gpg --gen-key
英語で表示される場合は、以下のエラーメッセージになります。
You need a Passphrase to protect your secret key. can't connect to `/home/user/.gnupg/S.gpg-agent': No such file or directory gpg-agent[3363]: directory `/home/user/.gnupg/private-keys-v1.d' created gpg-agent[3363]: command get_passphrase failed: Operation cancelled gpg: cancelled by user gpg: Key generation canceled.
can't connect to .gnupg/S.gpg-agent: No such file or directory
can't connect to `/home/user/.gnupg/S.gpg-agent': No such file or directory
手動で、gpg-agentを起動します。
gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gnupg/agent.info"
.bashrc で設定する場合は、以下の通りです。
if [ -f "${HOME}/.gnupg/agent.info" ]; then . "${HOME}/.gnupg/agent.info" export GPG_AGENT_INFO export SSH_AUTH_SOCK export SSH_AGENT_PID fi GPG_TTY=$(tty) export GPG_TTY
gpg problem with the agent No pinentry
関連項目
- gpg-agent
- Gpg4win
- Pretty Good Privacy
- GNU Privacy Guard
- 公開鍵暗号
- デジタル署名
- 暗号
- gnupg
- gpg
- gpgsm
- gpgconf
- gpg-connect-agent
- pinentry-curses