如何将 GPG 密钥添加到 apt 源密钥环?

如何将 GPG 密钥添加到 apt 源密钥环?

Ubuntu 文档页面上是这么说的:

建议您添加 Opera GPG 密钥。

wget -qO - http://deb.opera.com/archive.key | sudo apt-key add -

我应该把它添加到哪里?

我想采纳建议,但我不知道应该将 gpg 密钥添加到软件中心的哪个部分。

答案1

版主注:由于 apt-key 已被弃用,此解决方案不再有效。但是,除了删除答案外,没有其他方法可以更改消息是否被接受,并且由于历史原因以及自 2013 年原始帖子以来的大量点赞,我们无法删除此帖子。

请不要对该答案的“不安全”和“弃用”性质提出批评。


这是在终端中输入的一行命令。请参阅 什么是终端以及如何打开和使用它?

要使用它,您需要将整个命令粘贴到终端中(记得使用 https):

wget -qO - https://deb.opera.com/archive.key | sudo apt-key add -

但是,如果不知道命令的作用而只是复制粘贴,并且没有关于如何撤消其操作的说明,那么这当然是令人畏惧的,因此这里对命令进行了基本的分解:

  • wget从服务器下载内容。请参阅Ubuntu 16.04 的 wget 手册
  • |是一个管道,它将一个命令的输出作为另一个命令的输入
  • apt-key add添加包密钥

因此它基本上下载密钥然后在一个命令中添加它。

我测试了该命令并且它应该可以工作。


现在验证它是否有效,运行此命令(来自这个答案):

apt-key list

这将列出添加的密钥,并且 Opera 中的密钥应列在底部,如下所示:

pub   1024D/30C18A2B 2012-10-29 [expires: 2014-10-29]
uid                  Opera Software Archive Automatic Signing Key 2013 <[email protected]>
sub   4096g/C528FCA9 2012-10-29 [expires: 2014-10-29]

链接的答案还表明,您可以根据需要使用以下命令删除密钥:

sudo apt-key del 30C18A2B

30C18A2B列表中的密钥 ID。


执行该命令后,并像在你的屏幕截图, 做:

sudo apt-get update
sudo apt-get install opera

(请注意,有一些随机警告,但不会影响安装或软件中心操作)

并删除(以防万一):彻底删除应用程序的正确方法是什么?


总结一下:

  • 添加存储库 在此处输入图片描述
  • 添加密钥apt-key
  • 在终端中安装apt-get
  • 在 dash 中搜索 在此处输入图片描述

答案2

如果您从 PPA 手动添加密钥,请使用:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00000000

或者,如果您不想使用 apt-key:

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --no-default-keyring --keyring /usr/share/keyrings/change-ppa-name-here.gpg --recv-keys 00000000

将 替换00000000为您要添加的 PPA 网站中告知的密钥的第二部分。

例如,如果你找到此行:

 4096R/7BF576066

仅使用第二部分(无论其大小),在本例中为7BF576066

答案3

较新版本的 apt 还支持以下内容:

apt-key adv --fetch-keys http://deb.opera.com/archive.key

该方法还提供更详细的反馈,例如:

gpg: key 7BD9BF62: public key "signing key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

这还有一个额外的好处,就是不再需要像 wget 或 curl 这样的额外依赖项。

答案4

您不应通过 添加第三方密钥apt-key add。这些密钥随后可用于签署您机器上的任何软件包,包括来自存档的软件包。现在您应该只允许密钥签署特定的软件包。用户 Trudy 在 UNIX.SE 上的完整回答

相关内容