gpg:无法检查签名:没有公钥

gpg:无法检查签名:没有公钥

我可以在一台机器上解密文件,但在另一台机器上它说“无法检查签名”(但仍然解密文件)。

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

如何在运行的机器上找到公钥?


解密有效,即我看到update.tar并且它没有损坏。唯一的问题是有关签名检查的错误消息。在一台机器上我有它,而在另一台机器上我没有。即另一台机器有公钥来检查某处的签名。如何找到它?

答案1

您可能需要重新导入/导出密钥并导入它们:

在文件中运行它,确保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

在命令行上运行./file id,或者根据需要进行修改。

为了更容易移动,请在文件夹中运行它,然后将其压缩。

导入它们:

#!/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

当然,在运行之前先解压它们。

附:

  • 它显然会提示您输入密码,当涉及到 gpg 时您通常会输入密码。

  • 请记住,由于有两个priv密钥,它可能会多次询问您的密码(考虑两次),我相信其余的不会询问您的密码(当然,除非您cache在 gpg-agent.conf 中设置了设置)。 conf,在这种情况下它会询问一次或不询问)。

  • 最后,这仅适用于每个 ID 的情况。因此,您必须自己列出密钥的 ID,然后gpg -k复制粘贴要备份的 ID...

相关内容