Ale*_*lex 9 apt keyrings repository
如果我用谷歌搜索如何安装某些软件(例如 wine),我会看到将公钥保存在/usr/share/keyrings/下然后添加存储库的说明。但是,如果我打开存储库源文件,则会引用公钥签名者的另一个位置:/etc/apt/keyrings。
例如这里 https://www.howtoing.com/install-wine-in-ubuntu/ 首先你需要下载一个公钥并将其放入 /usr/share/keyrings
sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
Run Code Online (Sandbox Code Playgroud)
然后公钥是另一个位置 /etc/apt/keyrings 中的引用
sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
Run Code Online (Sandbox Code Playgroud)
在 winehq-jammy.sources 中
Signed-By: /etc/apt/keyrings/winehq-archive.key
Run Code Online (Sandbox Code Playgroud)
为什么会这样,它是如何运作的?
为什么公钥不被珍视?
gpg --dearmor
Run Code Online (Sandbox Code Playgroud)
不同的指南指向不同的位置。这是因为这两个位置都可以工作,实际上由您决定将它们放在哪里。
但似乎特定指南是错误的,因为它说您应该将密钥环放入/usr/share/keyrings/,但随后指向/etc/apt/keyrings/源文件。你应该选择其中之一——将两者混合肯定是错误的。(您可以写信给 TecMint 并指出他们文章中的错误。)
(由 调用)的联机帮助页实际上sources.listman sources.list在以下部分中提到了这些位置:
DEB 和 DEB-SRC 类型:选项
- Signed-By(签名者)是一个选项,要求存储库使用一组特定的密钥而不是 apt 配置的所有受信任密钥来通过apt-secure (8) 验证。它被指定为密钥环文件的绝对路径列表(必须可供 _apt 系统用户访问和读取,因此确保每个人都具有文件的读取权限)和从这些密钥环中选择的密钥指纹。密钥环的建议位置是
/usr/share/keyrings由程序包管理的密钥环和/etc/apt/keyrings由系统操作员管理的密钥环。如果未指定密钥环文件,则默认为trusted.gpg 密钥环以及trusted.gpg.d/ 目录中的所有密钥环(...)
然而,对于“由包管理”和“由系统操作员管理”的确切含义,并没有明确的定义。对我来说,这表明这里没有明确的正确或错误(因为它只是一个建议),除了您放置密钥的位置和您在源文件中引用它们的位置之间应该保持一致。
apt但是,我认为将密钥环放在该文件夹下是合乎逻辑的/etc/apt/,而用于应用程序其他目的的密钥环可以放在/usr/share/keyrings. 此外,apt还有另一个名为 的文件夹/etc/apt/trusted.gpg.d/,其中存储了 Ubuntu 的可信密钥环(手册页中也提到了)。
另外,请阅读此处了解为什么 GPG 密钥采用 Ascii 装甲 - 这也是完全留给发行者的选择(我见过装甲公钥和二进制公钥)。
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |