Gpg

如何使用特定的私鑰對文件進行分離簽名?||為什麼這會失敗?

  • October 13, 2018

我有一個.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不直接對文件進行簽名並創建單獨的簽名文件。

非工作範例

  1. 如果你把--local-userand 它的論點放在最後,而不是開頭,你會得到我的問題中的錯誤:
gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]

因此, the--local-user和它的論點應該放在第一位(如果可能的話)。 2. 如果你反轉--outputand --detach-sig,你會得到一個類似於我的問題的錯誤:

gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc

結論

**給定參數的順序很重要。**這就是它失敗的原因。

引用自:https://unix.stackexchange.com/questions/475052