Trusted.gpg.d 中的 APT 附加密钥环

Trusted.gpg.d 中的 APT 附加密钥环

我正在创建一个包,它将自动将一些存储库安装到 LAN 中的所有主机。该包将可从中央存储库访问。

我发现可以将 repo 列表放在“/etc/apt/sources.list.d/*.list”中。现在我需要导入它们的密钥,例如,这个。但是,当我将其放入“/etc/apt/trusted.gpg.d/Opera.gpg”时,apt-get update会出现大量NO_PUBKEY错误全部我有的 repos,包括 Opera!

怎么了? :)

答案1

从存储库下载的密钥应该合并到新的 GPG 密钥环中,以便您可以将它们放入“/etc/apt/trusted.gpg.d/*.gpg”,如下所示:

gpg --no-default-keyring --keyring ./Opera.gpg --import Opera.key
sudo cp Opera.gpg /etc/apt/trusted.gpg.d/Opera.gpg

答案2

您实际上可以两全其美:创建一个额外的密钥环/etc/apt/trusted.gpg.d/并使用它apt-key,而不是gpg直接使用。

如果您本地已有密钥文件,例如Opera.key,则运行以下命令:

sudo apt-key --keyring /etc/apt/trusted.gpg.d/Opera.gpg add Opera.key

当然,您仍然可以按照 MestreLion 所演示的那样直接导入密钥:

wget -q -O - http://deb.opera.com/archive.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/Opera.gpg add -

答案3

此外,您可以使用apt-key来添加密钥,而不必手动将文件拖放到该路径。假设您将文件保存为Opera.key

sudo apt-key add Opera.key

您甚至可以动态下载并导入密钥文件,而不是将其保存到本地文件:

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

Apt-key 管理主文件的内容/etc/apt/trusted.gpg而不是使用目录,这可能会给您带来方便或负担。

答案4

我认为接受的答案完全是误导性的,或者至少是过时的。当前的 ubuntu 不支持 GPG 密钥箱数据库文件格式作为密钥环片段。

如果你使用该答案,apt 更新将引发警告:W: The key(s) in the keyring /etc/apt/trusted.gpg.d/test.gpg are ignored as the file has an unsupported filetype.

其余答案涉及已弃用的命令apt-key,该命令在当前的 ubuntu 版本中不再存在。

正确的做法是

# cd into a dir which is 700 for yourself
gpg --no-default-keyring --keyring tmp.keyring.gpg --keyserver keyserver.ubuntu.com --recv-keys <key-id1> <key-id2>
gpg --no-default-keyring --keyring tmp.keyring.gpg --output my-keys.gpg --export
sudo cp /tmp/my-keys.gpg /etc/apt/trusted.gpg.d/

请注意,新的 apt 支持装甲密钥文件,因此如果您已经拥有 .asc 文件,则无需将其作为旧版 ubuntu (<16.04) 进行卸载

相关内容