2013-10-24 80 views
1

我試圖解密使用2個收件人(--recipient [email protected] --recipient [email protected])加密的文件。 但是,當我嘗試解密文件時,它總是請求第一個收件人的密碼。當第一個收件人祕密密鑰不是鑰匙圈的一部分時,它會給出一個錯誤'找不到祕密鑰匙'。GPG - 使用多個收件人解密

如何加密具有多個收件人的文件,以便兩者都可以在不知道彼此密鑰的情況下對其進行解密&密碼短語?

(對我來說,這個問題似乎很簡單和基本的功能 - 但顯然,我不能讓它開始工作)

預先感謝您!

+0

看起來這已經解決了。在gpg(GnuPG)1.4.11中,gpg首先會檢查您是否擁有私鑰,然後只有擁有該密鑰纔會詢問密碼,這顯然是合理的順序;) – Echsecutor

回答

3

今天我遇到了這個問題,並發現你的問題尋找答案。我看到很多快樂的例子如何加密事情多個收件人......從來沒有說/當一個人試圖解密該數據會發生什麼。下面是我的了:

[email protected] ~ $ gpg --decrypt filename.pgp 

You need a passphrase to unlock the secret key for 
user: "SOMEBODY ELSE <[email protected]>" 
2048-bit ELG-E key, ID ABC1234, created 1972-10-29 (main key ID ABC5678) 

gpg: Invalid passphrase; please try again ... [I DON'T HAVE *THEIR* PASSPHRASE!] 

2 more times... finally... 

You need a passphrase to unlock the secret key for 
user: "HEY! This is ME! <[email protected]>" 
2048-bit ELG-E key, ID DEF1234, created 1969-02-03 (main key ID DEF5678) 

gpg: encrypted with 2048-bit ELG-E key, ID ABC1234, created 1972-10-29 
     "NAME <[email protected]>" 
gpg: public key decryption failed: bad passphrase 
gpg: encrypted with 2048-bit ELG-E key, ID DEF1234, created 1969-02-03 
     "HEY! This is ME! <[email protected]>" 

and then the file decrypted fine... 

快速注:只是爲了澄清,for security reasons自己的密碼和自己的private key應該NEVER給予其他任何人。 The passphrase is to keep the private key "safe" should it become compromised. One's public關鍵是唯一應該與他人共享的東西。

我的前言是這樣的,我目前只能訪問版本1.4.2.2,並且沒有能力測試這些解決方案。後來的版本有一些可能是需要的選項。 如果有任何這些工作,請嘗試回答。

--local-user/-u看起來很有希望。在我的版本中,--help顯示爲use this user-id to sign or decrypt但試用時似乎徒勞,進一步的研究揭示了一個殘酷的事實:seems the help is wrong,這只是一個選項,用於"signing"

This post有一個可能的解決方案,但我個人覺得凌亂:

gpg --try-all-secrets --passphrase <passphrase here> filename.pgp 

--passphrasewas apparently added in version 1.4.3。啊!

編輯:Perhaps a better (possibly, below) solution is only available in gpg2?gpg2 seems to have--try-secret-key,而如果我讀正確,可能是我們倆都在尋找?

+1

非常好的研究。謝謝。還有另外一種選擇,爲了方便,這取決於你的用例。您可以使用選項--secret-keyring,並使用正確的密鑰將(臨時)密鑰環傳遞給gpg。通過這種方式,您可以將決定外化爲gpg(例如。你可以在gpg中編寫一個包裝腳本)。 – nus

0

我也面臨這個問題,今天我已經在批處理模式下運行GPG解決它:

/usr/bin/gpg --batch --passphrase "your_passphrase" --verbose --decrypt