对于 YUM(RHEL),我可以使用 HTTPS 链接指定密钥文件的存储库,例如/etc/yum.repo.d/elastic-7.x.repo
:
[elastic-7.x]
baseurl = https://artifacts.elastic.co/packages/7.x/yum
gpgcheck = 1
gpgkey = https://artifacts.elastic.co/GPG-KEY-elasticsearch
name = Elasticsearch repository for 7.x packages
如果是 Debian,我必须先下载一个密钥文件:
sudo curl -o /usr/share/keyrings/elastic.asc https://artifacts.elastic.co/GPG-KEY-elasticsearch
然后通过属性注册该文件signed-by
:
deb [signed-by=/usr/share/keyrings/elastic.asc arch=amd64] https://artifacts.elastic.co/packages/7.x/apt stable main
我可以通过 HTTPS URL 指定签名密钥吗?
这样,我就避免了在钥匙腐烂时更新钥匙。
答案1
这是不可能的。密钥必须以某种方式位于文件系统中。服务器只能指定要使用的密钥的指纹,但不能提供密钥本身。请参阅选项的Signed-by
文档man sources.list
:
被...签名(signed-by)是要求存储库通过的选项apt-secure(8)使用一组特定的密钥而不是 apt 配置的所有可信密钥进行验证。它被指定为密钥环文件的绝对路径列表(必须对 _apt 系统用户可访问和读取,因此请确保每个人都对文件具有读取权限)以及从这些密钥环中选择的密钥的指纹。[...] 如果在此存储库的先前获取的 Release 文件中设置,则该选项默认为同名选项的值(只能通过此处指定指纹)。否则,受信任密钥环中的所有密钥都被视为此存储库的有效签名者。该选项也可以直接设置为嵌入式 GPG 公钥块。