Gpg

gpg:無法檢查簽名:沒有公鑰

  • March 22, 2021

我可以在一台機器上解密文件,但在另一台機器上它說“無法檢查簽名”(但仍然解密文件)。

$ sudo gpg --lock-never -o update.tar -r my@email.com --decrypt myfile.sig
gpg: Signature made <DATETIME>
gpg:                using RSA key <KEY>
gpg: Can't check signature: No public key

如何在它工作的機器上找到公鑰?


解密有效,即我看到update.tar並且它沒有損壞。唯一的問題是有關簽名檢查的錯誤消息。在一台機器上我有它,而在另一台機器上我沒有。即另一台機器有公鑰來檢查某處的簽名。如何找到它?

您可能需要重新導入/導出密鑰並導入它們:

在文件中執行它,確保首先執行chmod +x file

#!/bin/bash
your_id_here="$@"
#your_id_here is your ID.:

#Export keys and ownertrust:
exportkey() {
gpg --export --armor $your_id_here > $your_id_here.pub.asc
gpg --export-secret-keys --armor $your_id_here > $your_id_here.priv.asc
gpg --export-secret-subkeys --armor $your_id_here > $your_id_here.sub_priv.asc
gpg --export-ownertrust > $your_id_here.ownertrust.txt
}
exportkey

在命令行上執行 as ./file id,或根據需要進行修改。

為了更容易移動,請在文件夾中執行它,然後將其 tar。

要導入它們:

#!/bin/bash
your_id_here="$@"
importkey() {
gpg --import $your_id_here.pub.asc
gpg --import $your_id_here.priv.asc
gpg --import $your_id_here.sub_priv.asc
gpg --import-ownertrust $your_id_here.ownertrust.txt
}
importkey

和上面一樣./file2 id

當然,在執行之前先解壓它們。

PS:

  • 它顯然會提示您輸入密碼,這在 gpg 時通常會有。
  • 請記住,由於有兩個密鑰,它可能會多次詢問您的密碼(想想 2 次)priv,我相信其餘的都不會詢問(當然,除非您cache在 gpg-agent.xml 中設置了設置。 conf,在這種情況下,它會詢問一次或不詢問)。
  • 最後,這僅適用於 per-id 案例。因此,您必須自己列出密鑰的 ID,gpg -k然後使用複制粘貼您要備份的 ID…

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