gpg --import bind-9.9.4.tar.gz.sha1.asc 失败,未找到有效的 OpenPGP 数据

gpg --import bind-9.9.4.tar.gz.sha1.asc 失败,未找到有效的 OpenPGP 数据

这是我第一次觉得我最好检查一下要安装的绑定软件的密钥。所以我下载了我认为是 OpenPGP 密钥的东西……

$ wget ftp://ftp.isc.org/isc/bind9/9.9.4/bind-9.9.4.tar.gz.sha1.asc

...然后我尝试像这样“导入”这个密钥...

$ gpg --import bind-9.9.4.tar.gz.sha1.asc

...但我收到此错误消息:

gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

我究竟做错了什么?

谢谢!

答案1

--import用于导入密钥,而不是检查签名。

.asc文件通常是分离的 GPG 签名。如果您有文件foo.tar.gzfoo.tar.gz.asc(或foo.tar.gz.sig),则可以foo.tar.gz使用以下方法验证该文件:

gpg foo.tar.gz.asc

但是,对于您来说,文件名与该模式不匹配,因此您应该--verify明确指定选项。根据 gpg(1) 手册页:

- 核实

假设第一个参数是签名文件或分离签名,并验证它而不生成任何输出。如果没有参数,则从 STDIN 读取签名包。如果只给出了 sigfile,则它可能是完整签名或分离签名,在这种情况下,签名的内容应该放在没有“.sig”或“.asc”扩展名的文件中。如果有多个参数,则第一个应该是分离签名,其余文件是签名的内容。要从 STDIN 读取签名的内容,请使用“-”作为第二个文件名。出于安全原因,分离签名无法从 STDIN 读取签名材料,除非以上述方式表示它。

因此:

$ gpg --verify bind-9.9.4.tar.gz.sha1.asc bind-9.9.4.tar.gz
gpg: Signature made Wed 18 Sep 2013 09:25:43 PM CEST using RSA key ID 189CDBC5
gpg: Can't check signature: No public key

现在,可以使用以下方式导入该密钥:

gpg --recv-keys 189CDBC5

一定要验证此密钥。理想情况下,您会与该人见面,但如果做不到这一点,请查看其他人对此密钥的信任程度(Linux 发行版、朋友等)。请记住,GPG 是关于信任的网络。

也可以看看:

相关内容