什么是Ubuntu下的存储库密钥,它们如何工作?
大多数情况下,只需添加软件包存储库,就可以在没有存储库密钥的情况下下载和安装软件包。 此外,一些存储库会在其信息旁边显示其密钥,因此很容易找到它们。 但
- 如果我们可以在没有它们的情况下安装包,为什么还需要添加密钥?
- 他们如何在Ubuntu下工作?
我从Ubuntu社区帮助Wiki中找到了一个很好的解释。
- 什么是存储库?
“认证密钥”通常从软件存储库的维护者处获得。 维护者通常会将身份validation密钥的副本放在公钥服务器上,例如www.keyserver.net。 然后可以使用该命令检索密钥。
Apt身份validation
Apt-get
包管理使用公钥加密来validation下载的包。
- Debian在这个wiki页面上很好地解释了Secure apt。
以下是从Debian维基页面收集的关键获取和validation过程的简短摘要。
基本概念公钥加密基于密钥对,
public key
和private key
。public key
给世界;private key
必须保密。 拥有公钥的任何人都可以加密消息,以便只有拥有私钥的人才能阅读。 也可以使用私钥对文件进行签名,而不是对其进行加密。 如果使用私钥对文件进行签名,则拥有该公钥的任何人都可以检查该文件是否由该密钥签名。 任何没有私钥的人都不能伪造这样的签名。gpg(GNU Privacy Guard)是用于安全标记文件并检查其签名的工具。
apt-key是一个程序,用于管理安全apt的gpg密钥的密钥环。 密钥环保存在文件
/etc/apt/trusted.gpg
(不要与相关但不太有趣的/etc/apt/trustdb.gpg
混淆)。 apt-key可用于显示密钥环中的密钥,以及添加或删除密钥。每次向
/etc/apt/sources.list
添加另一个apt存储库时,如果你想要信任它,你还必须给它apt。 获得密钥后,您可以通过检查密钥的指纹validation它,然后使用您的私钥对此公钥进行签名。 然后,您可以使用apt-key add
到apt的密钥apt-key add
您需要存储库密钥,以便您可以validation是否从您认为自己获得该软件包的人那里获得了该软件包。
这是为了防止人们将不良软件包注入您的更新。
您应该尽可能地添加存储库密钥。