Gpg
如何使用特定的私鑰對文件進行分離簽名?||為什麼這會失敗?
我有一個
.tar.xz
文件,我想使用我的gpg
私鑰對其進行分離簽名。問題是,我有多個私鑰導入到我的密鑰環中,需要選擇使用哪一個。
進步
這是我試圖執行的:
gpg --output somefile.tar.xz.sig --detach-sig somefile.tar.xz --local-user [fingerprint]
但我收到一個錯誤:
gpg: Note: '--local-user' is not considered an option gpg: can't open '--local-user': No such file or directory gpg: signing failed: No such file or directory
我在這裡做錯了什麼,我該如何解決?
解決方案
我一直在使用以下工作範例來糾正這種情況:
gpg --local-user [fingerprint] --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz
解析
gpg
:進行簽名的程序;就我而言,版本 2.2.4--local-user
:在我的情況下,將 ID 作為參數或指紋。--sign
:gpg
要做的動作。--armor
: 輸出人類可讀的字元而不是二進制。--output
: 將不存在的文件名作為參數,這是gpg
’ 工作的結果。如果它存在,它會詢問您是否要覆蓋。--detach-sig
: 指示gpg
不直接對文件進行簽名並創建單獨的簽名文件。非工作範例
- 如果你把
--local-user
and 它的論點放在最後,而不是開頭,你會得到我的問題中的錯誤:gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]
因此, the
--local-user
和它的論點應該放在第一位(如果可能的話)。 2. 如果你反轉--output
and--detach-sig
,你會得到一個類似於我的問題的錯誤:gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc
結論
**給定參數的順序很重要。**這就是它失敗的原因。