古いgpgバージョンで開始したgpgセットアップがあり、その当時はパスフレーズを使用していませんでした。プロンプトが表示されたら、直接Enterキーを押します。それが鍵が暗号化されていないのか、それとも空のパスフレーズで暗号化されているのかはわかりません。
とにかく、最近送られてきたものを解読しようとすると、gpgは秘密鍵にアクセスする必要があり、パスフレーズの入力を求めますが、空のパスフレーズを使用できなくなりました。 gpgは失敗します:
$ gpg -d foo.asc
(X dialog that prompts me for passphrase, I just press enter)
gpg: public key decryption failed: No passphrase given
gpg: decryption failed: No secret key
鍵をまた使えるようにしたいのですが。これからパスフレーズを設定してもかまいませんが、方法はわかりません。
$ gpg --passwd [email protected]
(X dialog that prompts me for current passphrase, I just press enter)
gpg: key xxxxxxxxxxxxxxxx/aaaaaaaaaaaaaaaa: error changing passphrase: No passphrase given
gpg: key xxxxxxxxxxxxxxxx/bbbbbbbbbbbbbbbb: error changing passphrase: No passphrase given
gpg: error changing the passphrase for '[email protected]': No passphrase given
OpenSUSE 15.0でgpg(GnuPG)2.2.5とlibgcrypt 1.8.2を実行しています。
この問題を解決するには、キーのある古いシステムを使用しました。
ここに私が実行したコマンドがあります:
# put a non-empty passphrase on current key
me@old$ gpg --passwd [email protected]
(leave empty on first Prompt)
(put a new non-empty passphrase on 2nd)
(confirm new passphrase)
# now we export it
me@old$ gpg --list-secret-keys
/home/xxxxx/.gnupg/secring.gpg
-------------------------------
sec 4096R/AAAAAAAA 2015-01-01
uid Foo Bar <[email protected]>
uid Bar Foo <[email protected]>
ssb 4096R/BBBBBBBB 2015-01-01
# I've used the first key id (should be 8 hex digits)
me@old$ gpg --export-secret-keys AAAAAAAA > priv.key
# copy key over new system
# backup .gnupg dir just in case
me@new$ mv .gnupg .gnupg.back
# import new priv key
me@new$ gpg --import priv.key
(type new passphrase set previously)
# done!
完全を期すために、ここに両方のシステムのソフトウェアバージョンを示します。これは、誰かに役立つ可能性があります。
これらは考えられる3つの解決策です。あなたのケースでうまくいくかどうかをお知らせください。
注意:これらを試す機会はありませんでした(私は空のパスワードのgpgキーリングを持っていません)が、manページ/ウェブページを調査して検索しました!
--passphrase-fd
と組み合わせて--batch
を使用すると、パイプを介して空の文字列を入力できます。
echo '' | gpg2 --batch --passphrase-fd 0 your other options
グラフィカルな証明書マネージャーである Kleopatra を使用してみてください。
Change passphrase
また、pinentry
ユーティリティを活用する このソリューション を試すこともできます。