私のキーで暗号化されたファイルをgnupgで復号化できないようです。秘密鍵を古いラップトップから新しいラップトップに移行しようとしましたが、同じエラーが発生し続けます。
gpg: decryption failed: No secret key
次のようにして、古いラップトップから公開、秘密、およびサブキーをエクスポートしてみました。
gpg --export MYKEYID > pub.key
gpg --export-secret-keys MYKEYID > sec.key
gpg --export-secret-subkeys MYKEYID > sub.key
次に、それらを新しいラップトップにコピーし、次のようにインポートしました。
gpg --import pub.key
gpg --import sec.key
gpg --import sub.key
次に、鍵を編集して究極の信頼を与えました。
gpg --edit-key MYKEYID
gpg> trust
...
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
しかし、何があっても、復号化に失敗します:
gpg --decrypt -v encryptedfile.gpg
gpg: public key is E78E22A13ED8B15D
gpg: encrypted with ELG key, ID E78E22A13ED8B15D
gpg: decryption failed: No secret key
古いラップトップのバージョン:
gpg --version
gpg (GnuPG) 2.1.21
libgcrypt 1.7.6
新しいラップトップのバージョン:
gpg --version
gpg (GnuPG/MacGPG2) 2.2.3
libgcrypt 1.8.1
これは完全に私のせいでした。何が起こったのかはわかりませんが、解読しようとしたファイルは、キーで暗号化されていませんでした。別のファイルを試しましたが、うまくいきました。
それがどのように起こったかはわかりませんが、古いマシンで同じファイルを最初にテストすると、かなりの時間を節約できたでしょう:).
エラーがランダムに発生し始めました
gpg: decryption failed: No secret key
同様に、ファイルを復号化しようとするとき。不思議なことに、GPGは、自分のファイルとは異なるキーIDでファイルが暗号化されていると教えてくれました(名前とキーの作成日を正しく識別したにもかかわらず)。コンピュータを再起動すると、問題は解消しました。
GPGデーモンのメモリ内の一部の位置がずれる可能性があるバグがあり、それを再起動する必要があると思います。
エラーが発生しました:
gpg: decryption failed: No secret key
ctrl + Cでgpgプロンプトを閉じた後、まだいくつかの状態がぶら下がっていました。
Gpg-agentプロセスを強制終了して修正しました。
$ ps aux | grep gpg-agent
user 76882 0.0 0.0 4297004 996 ?? Ss 11:51AM 0:00.02 gpg-agent --homedir /Users/user/.gnupg --use-standard-socket --daemon
$ kill 76882