如何使用 .asc PGP 签名文件检查或验证 pgp/gpg 签名? (无法检查签名:没有公钥)

如何使用 .asc PGP 签名文件检查或验证 pgp/gpg 签名? (无法检查签名:没有公钥)

我正在从此处安装 Ultimaker Cura 3D 打印机切片程序(https://github.com/Ultimaker/Cura/releases/tag/5.1.0)到 Linux Ubuntu 20.04。

我下载了这两个文件:

Ultimaker-Cura-5.1.0-linux-modern.AppImage
Ultimaker-Cura-5.1.0-linux-modern.AppImage.asc

在文本编辑器中打开 .asc 文件显示它包含:

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEGInq7S25O/ff+zymwaG5EGnEr1kFAmLWpkEACgkQwaG5EGnE
r1necwgAwO8fqUtXicpJPiIXeFR6L3a2cTc/hLgTgk4Bw8Ey5LKiQyeIsDd3r/vZ
tGiMsb4TrG8WuGIvidBoubuamnIdy2zKyy8Gk1e+MiIgfIWdWIl7KuX/K3GY0oyV
H5rfQWv/g4hCHsDXRpElva79p6W6DYvgdSGeNTpjaeGmLT29OcXCP4wPvSN4izsi
9AU+0DOdq204ZeiGKboXpdPdkWXeyuMJHFdvTlOZVZSb0Ib0zZugSmWYLo8fvK2p
8mrqPMdLu7BMS9ZS/wGrxRfVyOwxk72xuPjGXsrcPXWHtAF5OjvzvCPUzGfnDN10
fVF3+MKS79PQOEYXwAi2hixPCReWNA==
=12yS
-----END PGP SIGNATURE-----

如何使用这个.asc签名文件来检查主文件?

我阅读了此页,最后一个示例似乎适用:https://www.gnupg.org/gph/en/manual/x135.html

所以我尝试了这个:

gpg --verify Ultimaker-Cura-5.1.0-linux-modern.AppImage.asc Ultimaker-Cura-5.1.0-linux-modern.AppImage

...我收到以下错误,如我的运行输出所示:

~/Downloads/Install_Files/Cura$ gpg --verify Ultimaker-Cura-5.1.0-linux-modern.AppImage.asc Ultimaker-Cura-5.1.0-linux-modern.AppImage
gpg: Signature made Tue 19 Jul 2022 05:40:33 AM MST
gpg:                using RSA key 1889EAED2DB93BF7DFFB3CA6C1A1B91069C4AF59
gpg: Can't check signature: No public key

我尝试遵循中的解决方案这个答案,使用上面输出中打印的 RSA 密钥哈希,它也不起作用:

$ gpg --receive-keys 1889EAED2DB93BF7DFFB3CA6C1A1B91069C4AF59
gpg: keyserver receive failed: Server indicated a failure

我环顾四周:Google 搜索“ultimaker 公钥”

有关的

  1. 我的问题:我应该安装哪个AppImage(.AppImage 与modern.AppImage)?

答案1

您收到该错误(“无法检查签名:没有公钥”),因为您需要首先将公钥添加到本地密钥环。

看起来 Ultimaker 的人对签名并不那么熟悉,因为他们的存储库中没有任何地方发布他们的签名密钥或指示您可以在哪里找到它。

有一个关于此的问题来自几年前,其中 GitHub 用户“LipuFei”评论:

公钥现在位于公钥服务器上。

$ gpg --keyserver pgp.mit.edu --recv-keys C1A1B91069C4AF59
gpg: /home/l.fei/.gnupg/trustdb.gpg: trustdb created
gpg: key C1A1B91069C4AF59: public key "Ultimaker Build Server <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1

如果您运行该命令来导入公开的您,则您将能够使用.asc签名文件验证您的下载。请注意,此示例使用密钥 ID ,C1A1B91069C4AF59但您也可以使用密钥指纹 ,1889EAED2DB93BF7DFFB3CA6C1A1B91069C4AF59并且您将获得相同的密钥。


更新

运行gpg --keyserver pgp.mit.edu --recv-keys 1889EAED2DB93BF7DFFB3CA6C1A1B91069C4AF59对我来说没有错误;结果密钥是:

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQENBFjve7ABCADfGQZcKIGC4eQFVE4yd1Mlft4n2wStUb7KBx3s4DX6WV6pF1/p
jKQpeFwa31IbjLEqQ+ulT9pEKAW5NQTMY+snPKL8kHOqWrseXRbaVeuimZmbdU1F
CNDYYyGYUc8vZw7N+gG7Sbwr3iE2rN4NHZdDj/LR9CJeGkl83pc4u0ikJyp+vU0J
wHKRMnY3XofuOHDOj/lew3jeNI4CBbtYHO01D1tP5HPRqQNdpsn9cWFmEKwypnGa
CmkAtgk8Afm1h7FsNktfOSlL6AHm/aQmEiTwEunWjqcJSOcf5xk1f5564k0zlSxW
fIyawnAKYEow6DKsKnJL9LVgdiMQGwvc8ft5ABEBAAG0L1VsdGltYWtlciBCdWls
ZCBTZXJ2ZXIgPG1vbm9saXRoQHVsdGltYWtlci5jb20+iQE4BBMBAgAiBQJY73uw
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDBobkQacSvWZhCB/9dLHEI
ebVQe3gA7vhk/fTDM0z32gJnGHqxgRc58iWvmPuCJdYvuzzEc1B6QF9mA38h45EV
70/Yt4iR9s7rcpyxp4h2qP1gA7W6OE257bUp2VGgp6FLqS0YXyUtj9QfAJwVAwGZ
3o8o/TiUCNO2S1QEyoCn0dTlbfb7/ht0PFb5Ez6DQSX4ArgEp95PPHez73DBiTix
00H+7OLeZG1eMAFrQw8VLSE/foSPqftXTx6l4Gi8/w4vWwLv4gsNrOdweKjyNkek
xWcrWLb+QFrLYlKoc4Hhr74YyqQ92omlkTFBef4v3Uqc2+UmGAMlif47eC9DJGwt
KwJyB3Jcj3J+W9qEuQENBFjve7ABCAC7zGl/bPHp0ywV+B5g1/iWKbn2Xjedt/be
t9EUn4hsuVetcJkw2Hfdxis/SCQIOMpkvGq3CfF+HHReP7Fj5fSRo07DmBN8PHqF
+XiJLZQTitCZWak6JpLzxy/l5z0bzHDVAiRBHj2rsDkQ+JDgalPypRGivMsIzOD3
XeIixb8RcUkRxgEqItfOeui4i512KE3OTg7DEub4tMKkdJ1e1iOrBBdtP8cKSKt1
MZt3xiljkA6gRZTjP1HTB4kLfg2PQ73gZMa1inXto8g7bt20L7zWBzKhlanprxRS
NdFi/5iaC8EQzi1dEkCowaWZpUGAh2DGGPaZpo+NDqiUhOb782vzABEBAAGJAR8E
GAECAAkFAljve7ACGwwACgkQwaG5EGnEr1nWCQf/VUPATUNRwWsw0WB4fa5aepQi
305mpRmSFHj46wPiKLYwkndoK6p6tVYA1O3315ObhzkwZog4t2rADl1mpE8lxsKo
fU8c6Ft81YuIf91BF096elVAc3/2/p0uKlEJnsTAamkn4MSZLHXJLmGt4Y2ma756
HFZ81VdLI8XpVWlLow6eaTCrPd8J34f+T4bgqRCoPwRjUlrQsqVprMfSmebwfcza
dN5OiX9J+0JSZ3e2/9qLGhmyk2CxM22GluLuoP79mV65TH0g/MRtz46ct3f7ECKi
iQ4m4xdHr6vCcN6M240qqn9ItCVeAwBCIPJgLtmr52mrQ5NC7b8NU44zQs/8gw==
=o+pH
-----END PGP PUBLIC KEY BLOCK-----

但是还有你没有理由信任这个密钥。由于该项目未在任何官方位置发布密钥、指纹和密钥 ID,因此您没有理由信任该密钥。是的,它与用于签署文件的密钥匹配,但这实际上是项目使用的密钥,还是聪明的黑客?我的意思是,当然,这是大概正确的密钥,但项目使用它的方式除了检查您的下载在传输过程中是否被损坏之外,并没有特别有用。

相关内容