GnuPG を使用してファイルを復号化するときに秘密鍵を指定するにはどうすればよいでしょうか?

GnuPG を使用してファイルを復号化するときに秘密鍵を指定するにはどうすればよいでしょうか?

GnuPG を使用してファイルを復号化しようとしていますが、以下のコマンドを使用すると、

gpg --decrypt filename.gpg

次のメッセージが表示されます:

gpg: encrypted with RSA key, ID 3662FD5E
gpg: decryption failed: No secret key

ファイルが暗号化された秘密鍵はすでに持っていますが、それをどのように指定すればよいかわかりません。復号化を行うときにこの鍵を指定するために含めることができるオプションはありますか?

答え1

ファイルが暗号化された秘密鍵はすでに持っていますが、それをどのように指定すればよいかわかりません。

私はこれを「秘密鍵を含むファイルを持っているが、GnuPG にそれを使用するように指示する方法がわからない」と理解しています。

GnuPGでは、鍵(公開鍵と秘密鍵の両方)をGnuPGキーリングに保存する必要があります。これは次のように簡単です。

gpg --import [keyfile]

その後は、すでに試したのとまったく同じ方法でファイルを復号化できるはずです。

答え2

bash-4.2$ gpg --import b_secret.key
gpg: key 23E7859B: already in secret keyring
gpg: Total number processed: 1
gpg:       secret keys read: 1
gpg:  secret keys unchanged: 1
bash-4.2$ gpg --decrypt b_txt.asc
gpg: key 23E7859B: secret key without public key - skipped
gpg: encrypted with RSA key, ID 04702E37
gpg: decryption failed: secret key not available

答え3

gpg decryptコマンドで秘密鍵を明示的に宣言する必要はありません。公開鍵と秘密鍵の両方がそして秘密鍵は、Jensが述べているように、復号化を行うホストのキーリング上に存在します。GPG は、復号化に必要な秘密鍵を自動的に決定し、パスワード チャレンジを提示します。

しかしすべての(キャッシュされていない)キーを試したい場合は(複数のキーで暗号化されたファイルをテストしているのかもしれません)、スイッチを使用すると、--try-all-secretsキーリング上のすべての秘密キーが順番に試行されます。例:

gpg -d --try-all-secrets test-gpg.txt.asc

HTH-テレンス

関連情報