![如何将 GPG 密钥添加到 apt 源密钥环?](https://linux22.com/image/835425/%E5%A6%82%E4%BD%95%E5%B0%86%20GPG%20%E5%AF%86%E9%92%A5%E6%B7%BB%E5%8A%A0%E5%88%B0%20apt%20%E6%BA%90%E5%AF%86%E9%92%A5%E7%8E%AF%EF%BC%9F.png)
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 上的完整回答。