Ubuntu Doc页面是这样说的:
建议您添加 Opera GPG 密钥。
wget -qO - http://deb.opera.com/archive.key | sudo apt-key add -
我在哪里添加?
我想接受建议,但我不知道要将 gpg 密钥添加到软件中心的哪个部分。
Mat*_*teo 117
这是在终端中输入的单行命令。请参阅 什么是终端以及如何打开和使用它?
要使用它,您需要在终端中粘贴整个命令(记住使用 https):
wget -qO - https://deb.opera.com/archive.key | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
但是,当然,在不知道它们在做什么的情况下复制和粘贴命令是令人生畏的,并且没有关于如何撤消其操作的说明,因此这里是命令的基本细分:
wget从服务器下载一些东西。请参阅Ubuntu 16.04 的 wget 手册。| 是一个管道,它接收一个命令的输出并将其运行到另一个命令的输入中apt-key add 添加一个包键所以它基本上会下载密钥,然后将其添加到一个命令中。
我测试了命令,它应该可以工作。
现在要验证它是否有效,请运行此命令(来自此答案):
apt-key list
Run Code Online (Sandbox Code Playgroud)
这将列出添加的密钥,来自 Opera 的密钥应列在底部,如下所示:
pub 1024D/30C18A2B 2012-10-29 [expires: 2014-10-29]
uid Opera Software Archive Automatic Signing Key 2013 <packager@opera.com>
sub 4096g/C528FCA9 2012-10-29 [expires: 2014-10-29]
Run Code Online (Sandbox Code Playgroud)
链接的答案还显示,如果需要,您可以使用以下方法删除密钥:
sudo apt-key del 30C18A2B
Run Code Online (Sandbox Code Playgroud)
同30C18A2B是从列表中密钥ID。
执行该命令并完全按照屏幕截图设置源后,请执行以下操作:
sudo apt-get update
sudo apt-get install opera
Run Code Online (Sandbox Code Playgroud)
(注意有一些随机警告,但不会影响安装或软件中心操作)
对于删除(以防万一):完全删除应用程序的正确方法是什么?
所以总结一下:

apt-keyapt-get
Pau*_*ghi 45
如果您从 PPA 手动添加密钥,请使用
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00000000
Run Code Online (Sandbox Code Playgroud)
替换为00000000您要添加的 PPA 网站中通知的密钥的第二部分。
例如,如果您找到这一行:
4096R/7BF576066
Run Code Online (Sandbox Code Playgroud)
仅使用第二部分(无论其大小),在本例中为 7BF576066
小智 32
较新版本的 apt 还支持以下内容:
apt-key adv --fetch-keys http://deb.opera.com/archive.key
Run Code Online (Sandbox Code Playgroud)
这种方法还提供了更详细的反馈,例如:
gpg: key 7BD9BF62: public key "signing key <username@domain.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Run Code Online (Sandbox Code Playgroud)
这还有一个额外的好处,即消除了对 wget 或 curl 等附加依赖项的需求。
小智 7
apt-key 现在似乎已被弃用,我创建了一个脚本来检测并获取丢失的密钥,您可以在此处获取它。
#!/bin/sh -e
tmp="$(mktemp)"
sudo apt-get update 2>&1 | sed -En 's/.*NO_PUBKEY ([[:xdigit:]]+).*/\1/p' | sort -u > "${tmp}"
cat "${tmp}" | xargs sudo gpg --keyserver "hkps://keyserver.ubuntu.com:443" --recv-keys # to /usr/share/keyrings/*
cat "${tmp}" | xargs -L 1 sh -c 'sudo gpg --yes --output "/etc/apt/trusted.gpg.d/$1.gpg" --export "$1"' sh # to /etc/apt/trusted.gpg.d/*
rm "${tmp}"
Run Code Online (Sandbox Code Playgroud)
小智 6
您不应通过添加第三方密钥apt-key add。然后,这些密钥可用于对计算机上的任何包进行签名,包括来自存档的包。现在您应该只允许密钥仅签署特定的包。用户 Trudy 对 UNIX.SE 的完整回答。
| 归档时间: |
|
| 查看次数: |
461653 次 |
| 最近记录: |