我可以在一台机器上解密文件,但在另一台机器上它说“无法检查签名”(但仍然解密文件)。
$ 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...