如何用.sig文件验证下载的文件?

Eon*_*nil 67 shell command-line command verify signature

当我下载GCC时,它也有一个.sig文件,我认为它是为了验证下载的文件而提供的.(我从这里下载了GCC ).

但我无法弄清楚我应该如何使用它.我试过gpg,但它抱怨公钥.

[root@localhost src]# gpg --verify gcc-4.7.2.tar.gz.sig gcc-4.7.2.tar.gz
gpg: Signature made Thu 20 Sep 2012 07:30:44 PM KST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
[root@localhost src]# 
Run Code Online (Sandbox Code Playgroud)

如何使用.sig文件验证下载的文件?

A.D*_*.D. 72

您需要导入公钥: C3C45C06

可以分三步完成.

1)查找公钥ID:

$ gpg gcc-4.7.2.tar.gz.sig 
gpg: Signature made ?t 20. zá?í 2012, 12:30:44 CEST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
Run Code Online (Sandbox Code Playgroud)

2)从密钥服务器导入公钥.通常不需要选择密钥服务器,但可以使用--keyserver <server>.Keyserver示例.

$ gpg --recv-key C3C45C06
gpg: requesting key C3C45C06 from hkp server keys.gnupg.net
gpg: key C3C45C06: public key "Jakub Jelinek <jakub@redhat.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
Run Code Online (Sandbox Code Playgroud)

3)验证签名:

$ gpg gcc-4.7.2.tar.gz.sig 
gpg: Signature made ?t 20. zá?í 2012, 12:30:44 CEST using DSA key ID C3C45C06
gpg: Good signature from "Jakub Jelinek <jakub@redhat.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 33C2 35A3 4C46 AA3F FB29  3709 A328 C3A2 C3C4 5C06
Run Code Online (Sandbox Code Playgroud)

输出应该说"好签名".


gpg:警告:此密钥未通过可信签名认证!

是另一个问题;)

  • 一步一步的解释! (7认同)
  • 如果需要验证的文件是gnupg(不在问题中),则可以在gnupg站点上获取SHA-1校验和,以便首先验证gnupg下载. (4认同)

tay*_*10r 19

这个其他途径对于验证GNU项目(例如Octave)特别有用,因为他们签名所请求的密钥可能在任何密钥服务器中都找不到.

来自http://ftp.gnu.org/README

还有.sig文件,其中包含上述文件的分离GPG签名,由生成它们的相同脚本自动签名.

您可以使用密钥环文件验证gnu项目文件签名:

https://ftp.gnu.org/gnu/gnu-keyring.gpg

包含密钥环文件,要验证的源文件和签名文件的目录中,要使用的命令是:

$ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig

  • 有趣的是,我在这里明确地想知道如何验证 Octave!:) (4认同)
  • 但如果我们谈论安全性,那么最好使用HTTPS连接:[https://ftp.gnu.org/gnu/gnu-keyring.gpg](https://ftp.gnu.org/gnu/gnu- keyring.gpg) (3认同)
  • 谢谢。我在任何密钥服务器中都找不到 Bash 维护者的密钥,但这正是我验证其源代码签名所需的。 (2认同)
  • 对于八度,请参阅有关 gpg4win 应用程序的答案:https://superuser.com/questions/1268544/how-to-verify-a-download-file-using-a-sig-file-and-public-key-in-视窗 10 (2认同)

use*_*469 -2

根据这个http://gcc.gnu.org/mirrors.html,这应该是Jakub Jelinek并且有效。我不知道你从哪里得到他的公钥。