ファイルを暗号化しようとすると、KGpgエディターウィンドウに次のエラーが表示されます。
暗号化はエラーコード2で失敗しました
コマンドラインで私は得ます:
$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
---------------------------------
pub 2048D/5E04B919 2012-02-02 [expires: 2016-02-01]
uid Firstname Lastname <[email protected]>
uid [jpeg image of size 4005]
$
$ gpg --encrypt file-to-encrypt
You did not specify a user ID. (you may use "-r")
Current recipients:
Enter the user ID. End with an empty line: [email protected]
No such user ID.
これは、以前はエディターとコマンドラインの両方で同じキーを使用して機能していました。 Current recipients:
は空です。何故ですか?
更新:
コマンドラインで-r
オプションを使用してユーザーIDを指定しようとすると、次のようになります。
$ gpg -r [email protected] --encrypt file-to-encrypt
gpg: [email protected]: skipped: unusable public key
gpg: file-to-encrypt: encryption failed: unusable public key
情報:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.10
Release: 12.10
Codename: quantal
$ dpkg -s gnupg
Package: gnupg
Status: install ok installed
Priority: important
Section: utils
Installed-Size: 1936
Maintainer: Ubuntu Developers <[email protected]>
Architecture: AMD64
Multi-Arch: foreign
Version: 1.4.11-3ubuntu4.4
私は問題と解決策が何であるかを理解したので、誰かが同じ問題に遭遇した場合に役立つ詳細を回答します。
問題はややあいまいで、実際に有益なエラーメッセージは表示されません。
暗号化サブキーの有効期限が切れていることがわかりました。不思議なことに、gpg --list-keys
は期限切れのサブキーを表示しませんでした!!サブキーの有効期限が延長されると、gpg --list-keys
の出力に含まれました。
また、KGpg
は、サブキーの有効期限が切れていることも、サブキーの有効期限を延長することもできません(メインキーの有効期限のみを変更できます)。
ソリューションの前のgpg --list-keys
の出力(個人情報を変更しました):
$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
---------------------------------
pub 2048D/5E04B919 2012-02-02 [expires: 2016-02-01]
uid Firstname Lastname <[email protected]>
uid [jpeg image of size 4005]
これ以上何もない。
ただし、gpg --edit 5E04B919
は、サブキーの有効期限が切れていることを示しました
$ gpg --edit 16AE78C5
gpg (GnuPG) 1.4.11; Copyright (C) 2010 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 2048D/5E04B919 created: 2012-02-02 expires: 2016-02-01 usage: SCA
trust: ultimate validity: ultimate
sub 1024g/16AE78C5 created: 2012-02-02 expired: 2014-02-01 usage: E
[ultimate] (1). Firstname Lastname <[email protected]>
[ultimate] (2) [jpeg image of size 4005]
gpg>
Googleで検索したところ、このメーリングリストのアーカイブが見つかりました。これにより、gpg
コマンドラインを使用してサブキーの有効期限を延長する正しい方向が示されました。
http://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html
私は指示に従い、サブキーの有効期限を延長しました。この後、gpg --list-keys
は異なる出力を提供しました:
$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
---------------------------------
pub 2048D/5E04B919 2012-02-02 [expires: 2016-03-12]
uid Firstname Lastname <[email protected]>
uid [jpeg image of size 4005]
sub 1024g/16AE78C5 2012-02-02 [expires: 2016-03-12]
この後、すべてが正常に戻り、ファイルを暗号化できました。
私の場合、キー(gpg --import path/to/key
)他のマシンで生成されました。
信頼できないので使えませんでした。
gpg --edit-key "MY KEY ID" trust
および信頼レベル5を設定します。
その後、私の鍵が信頼できるようになり、暗号化に使用できるようになりました。
暗号化に使用するキーを指定する必要があるため、この場合に必要なコマンドはgpg -r [email protected] --encrypt file-to-encrypt
。
私は同じ問題(期限切れの公開鍵)に直面し、このスレッドに出くわしました。 marekful が提案する解決策は非常に便利ですが、(対応する)秘密鍵にアクセスできる場合にのみ機能します。
私の場合、この前提条件が満たされなかったので、最終的に先に進み、システム時刻を以前の日付に変更しました(キーがまだ有効なとき)。これにより、skipped: unusable public key
メッセージ。
期限切れのキーを使用することはお勧めしません。絶対に必要な場合は、これを最後の手段として使用してください。