在哪里可以找到Gnu Emacs的公钥?

在哪里可以找到Gnu Emacs的公钥?,emacs,gnupg,Emacs,Gnupg,从23.1到23.3,我只使用了半年的emacs 每次我试图找到emacs的gpg公钥,以便检查tar.gz包和每个新版本发布的tar.gz.sig。结果我每次都失败了:-] 似乎我应该先取公钥,我搜索了emacs的网站,但没有找到一个标志 我只能在邮件列表中找到SHA1校验和 进行完整性检查 顺便说一句,我并不怀疑FSF的安全性。只是好奇…以前从未使用过gpg 你能给我一个链接吗 如果您尝试使用验证签名,请感谢 gpg --verify <pkg>.key 您要查找的密钥ID是B

从23.1到23.3,我只使用了半年的emacs

每次我试图找到emacs的gpg公钥,以便检查tar.gz包和每个新版本发布的tar.gz.sig。结果我每次都失败了:-]

似乎我应该先取公钥,我搜索了emacs的网站,但没有找到一个标志

我只能在邮件列表中找到SHA1校验和 进行完整性检查

顺便说一句,我并不怀疑FSF的安全性。只是好奇…以前从未使用过gpg

你能给我一个链接吗


如果您尝试使用验证签名,请感谢

gpg --verify <pkg>.key
您要查找的密钥ID是
BE216115
,因此您要求gpg使用以下方法检索它:

gpg --recv-keys BE216115
这导致我的安装发生以下情况:

gpg: requesting key BE216115 from hkp server keys.gnupg.net
gpg: key BE216115: public key "Francesco Potortì <pot@potorti.it>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 2  valid:   6  signed:   1  trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: Total number processed: 1
gpg:               imported: 1
在命令提示下键入
help
,查看所有可用选项。有关更多信息,请参见GNU钥匙圈位于

您可以使用在本地(下载后)导入它们


@vhallac的答案现在已经过时了(我正在尝试验证emacs-24.4的下载)。如果您不想下载并导入整个GNU密钥环(正如@JSON所讨论的),这里有一种方法可以完成这项工作。在这个答案中,我将展示什么在今天起作用,以及如何计算什么在一年后起作用

首先下载emacs及其
.sig
文件。我有:

$ls| grep emacs
emacs-24.4.tar.xz
emacs-24.4.tar.xz.sig
假设您已经安装了gpg,请尝试验证它:

$gpg--验证emacs-24.4.tar.xz.sig
gpg:使用RSA密钥ID A0B0F199在美国东部时间2014年10月20日星期一02:58:21下午签字
gpg:无法检查签名:未找到公钥
在这次尝试中,它失败了(您将在本文末尾看到一次成功的尝试)。我没有公钥。输出告诉您需要获取哪个公钥:
A0B0F199
。(这是未来最有可能改变的事情。)

因此,我尝试使用默认命令下载它:

$gpg--recv键A0B0F199
gpg:正在从hkp服务器keys.gnupg.net请求密钥A0B0F199
(…挂在这里…)
它只是挂着。这是因为我有
ufw
(我的Linux防火墙软件)阻止了大多数端口。您可以告诉gpg使用端口80,如下所示:

$gpg--keyserverhkp://keys.gnupg.net:80 --接收键A0B0F199
gpg:正在从hkp服务器keys.gnupg.net请求密钥A0B0F199
gpgkeys:在keyserver上找不到密钥A0B0F199
gpg:未找到有效的OpenPGP数据。
gpg:处理的总数:0
这通过了防火墙,但失败了,因为出于某种原因,Emacs/FSF密钥不再存储在gnupg服务器上。因此,我尝试了我知道的另一个keyserver,并获得了一定程度的信任:

$gpg--keyserverhkp://pool.sks-keyservers.net:80 --接收键A0B0F199
gpg:正在从hkp server pool.sks-keyservers.net请求密钥A0B0F199
gpg:密钥A0B0F199:已导入公钥“Glenn Morris”
gpg:处理的总数:1
gpg:imported:1(RSA:1)
好的,成功了。现在检查一下:

$gpg--列出键
...
pub 2048R/A0B0F199 2012-12-23[到期日期:2015-12-23]
格伦莫里斯酒店
sub 2048R/951C59EC 2012-12-23[到期日期:2015-12-23]
是的,明白了

现在我可以验证下载的emacs tarball:

$gpg--验证emacs-24.4.tar.xz.sig
gpg:使用RSA密钥ID A0B0F199在美国东部时间2014年10月20日星期一02:58:21下午签字
gpg:“格伦·莫里斯”的签名很好
gpg:警告:此密钥未经可信签名认证!
gpg:没有迹象表明签名属于所有者。
主键指纹:B294 26DE FB07 724C 3C35 E5D3 6592 E9A3 A0B0 F199

签名“良好”,但不可信。有关如何信任该密钥,请参阅其他答案。

在GNU FTP服务器的根级别有一个
自述文件,该文件解释了如何使用签名

有关最新版本,请参阅

当前文件显示:

还有.sig文件,其中包含上述分离的GPG签名
文件,由生成这些文件的同一脚本自动签名。
您可以从以下位置使用keyring文件验证gnu项目文件的签名:
https://ftp.gnu.org/gnu/gnu-keyring.gpg
在具有keyring文件的目录中,要验证的源文件和
签名文件,要使用的命令是:
$gpg--verify--keyring./gnu-keyring.gpg foo.tar.xz.sig

谢谢。接受的答案没有指定在没有keyserver的情况下要做什么。仅验证下载是否有点过分?@JeffBurdges,如果您正在下载软件,那么您将安装并运行该软件(可能以root用户身份)验证它是否是正确的软件似乎是合理的。您可以创建一个gpg.conf文件,其中包含一行密钥服务器
keyserverhkp://pool.sks-keyservers.net:80
。将此gpg.conf文件放入
~/.gnupg
(在类似unix的环境下)或Windows下的
c:/Users/USERNAME/AppData/Roaming/gnupg
我如何知道我可以信任你(
BE216115
是关键)?另外,简单地相信任何添加的密钥似乎不是一个好的实践。事实证明,您的答案是-for Emacs-26.1。至少-唯一还在工作的,非常感谢。
gpg: requesting key BE216115 from hkp server keys.gnupg.net
gpg: key BE216115: public key "Francesco Potortì <pot@potorti.it>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 2  valid:   6  signed:   1  trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: Total number processed: 1
gpg:               imported: 1
gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115
gpg: Good signature from "Francesco Potortì <pot@potorti.it>"
gpg:                 aka "Francesco Potortì <pot@gnu.org>"
gpg:                 aka "Francesco Potortì <Potorti@isti.cnr.it>"
gpg:                 aka "Francesco Potortì <pot@softwarelibero.it>"
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: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115
gpg --edit-key BE216115
gpg --import gnu-keyring.gpg