Gpg
創建新的 GPG 子密鑰後,如何使用之前的 GPG 子密鑰進行加密?
我最近生成了兩個新的子密鑰以放在外部密鑰卡上。我以前有一個主密鑰(使用標記為 SC)和一個子密鑰(標記為 E)。這種安排很好地滿足了我將一些本地文件保密的需要。剛才我使用創建了兩個新的子密鑰
addkey
,一個簽名密鑰和一個加密密鑰。我使用keytocard
. 這似乎運作良好,並且該卡符合我的預期。現在的問題是我不知道如何使用我的第一個子密鑰(密鑰 1)加密文件。無論我指定什麼作為收件人或使用者(包括子密鑰 ID),生成的文件都顯示為針對他們現在在我卡上的密鑰進行加密(並且僅在我的卡上!)。
我的鑰匙圈現在看起來像這樣:
❯❯❯ gpg --list-secret-keys /home/caleb/.gnupg/pubring.gpg ------------------------------ sec rsa4096/75267693 2014-07-31 [expires: 2016-02-02] uid [ultimate] Caleb Maclennan <caleb@alerque.com> ssb rsa4096/B89B1E86 2014-07-31 [expires: 2018-07-30] ssb> rsa2048/85BD5AD1 2015-10-06 [expires: 2016-10-05] ssb> rsa2048/DFE6D89D 2015-10-06 [expires: 2016-10-05]
對於加密我正在執行這樣的東西:
❯❯❯ gpg --recipient B89B1E86 -a -e test.txt
但是我已經嘗試了所有的
--default-key
,--local-user
(-u
)和--recipient
(-r
),包括組合。我以任何方式搖動它,解密結果表明它是用我的卡密鑰編碼的:❯❯❯ gpg -d test.txt.asc gpg: encrypted with 2048-bit RSA key, ID DFE6D89D, created 2015-10-06 "Caleb Maclennan <caleb@alerque.com>" gpg: public key decryption failed: Card error gpg: decryption failed: No secret key
使用特定子密鑰加密的正確程序是什麼?
要使用特定的子鍵,並且沒有 GnuPG 將子鍵解析為主鍵,請附加
!
到該鍵。例如,要為子密鑰加密DEADBEEF
,請使用--recipient DEADBEEF!
.重要提示:由於碰撞攻擊,不建議使用短密鑰 ID,而是使用長密鑰 ID 或指紋。