web-dev-qa-db-ja.com

GnuPGを使用してファイルを復号化するときに秘密鍵を指定する方法は?

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

gpg --decrypt filename.gpg

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

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

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

22
Crista23

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

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

GnuPGには、GnuPGキーリングに格納するキー(公開と秘密の両方)が必要です。これは簡単です

gpg --import [keyfile]

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

17
Jens Erat
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
6
anshul

Gpg復号化コマンドで秘密鍵を明示的に宣言する必要はありません。鍵ペア-公開[〜#〜]と[〜#〜]秘密鍵の両方の場合-暗号化しているホストの鍵リングにJensの状態が存在するため、GPGは、復号化に必要な秘密鍵を自動的に決定し、パスワードチャレンジを提示します。

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

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

HTH-テレンス

2
F1Linux