You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法验证PGP签名:rsync 3.1.3签名验证失败求助

搞定rsync 3.1.3签名验证失败的问题

我帮你拆解下遇到的两个核心问题,一步步来解决:

先处理奇怪的armor header错误

你看到的gpg: unknown armor header: Version: GnuPG v1,十有八九是签名文件格式出问题了——要么是下载时把签名和其他说明内容混在了一起,要么是文件下载不完整。

先打开你的signature.sig文件看看,正常的GPG签名文件应该是这样的结构:

-----BEGIN PGP SIGNATURE-----
# 这里是一堆签名字符
-----END PGP SIGNATURE-----

如果里面混了Version: GnuPG v1这行多余内容,直接把它删掉,只保留前后的PGP签名块,保存文件后再继续。

然后解决公钥找不到的问题

报错里的Can't check signature: public key not found,说明你的GPG密钥环里没有rsync发布者的公钥(就是那个DSA key ID 4B96A8C5)。

执行下面的命令导入这个公钥:

gpg --recv-keys 4B96A8C5

要是这个命令因为网络连不上默认密钥服务器失败,试试指定Ubuntu的密钥服务器:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 4B96A8C5

最后重新验证签名

做完上面两步,再跑验证命令:

gpg --verify signature.sig rsync.tar.gz

如果成功的话,你会看到类似这样的输出:

gpg: Good signature from "Wayne Davison wayned@users.sourceforge.net"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.

别担心那个警告,它只是说你还没手动信任这个公钥,只要看到Good signature就说明文件是没问题的。

顺便说下你用的--decrypt命令

gpg --decrypt是用来解密加密文件的,而签名文件是用来验证文件完整性的,所以这个命令根本不适用,报错很正常,以后验证签名只用--verify就对了。

内容的提问来源于stack exchange,提问作者Nisba

火山引擎 最新活动