Ubuntu下的存储库密钥是什么?它们如何工作?


25

大多数情况下,仅添加软件包存储库即可使您无需存储库密钥即可下载和安装软件包。另外,某些存储库还会在信息旁边显示其密钥,因此很容易找到它们。但

  • 如果可以安装没有密钥的软件包,为什么还要添加密钥?
  • 它们在Ubuntu下如何工作?

Answers:


20

我从Ubuntu Community Help Wiki找到了一个很好的解释。

通常从软件存储库的维护者那里获得“认证密钥”。维护人员通常会将身份验证密钥的副本放置在公共密钥服务器上,例如www.keyserver.net。然后可以使用命令检索密钥。

身份验证

Apt-get 程序包管理使用公共密钥加密技术对下载的程序包进行身份验证。

  • Debian在解释此Wiki页面上的Secure apt方面做得非常出色。

以下是从Debian的Wiki页面收集的密钥获取和验证过程的简短摘要。

基本概念公钥密码术基于一对密钥a public key和a private key。在public key被赋予了世界; 在private key必须保持秘密。拥有公共密钥的任何人都可以对消息进行加密,以便只有拥有私有密钥的人才能读取该消息。也可以使用私钥对文件进行签名,而不是对其进行加密。如果使用私钥对文件签名,则拥有公钥的任何人都可以检查该文件是否已由该密钥签名。没有私钥的人都不能伪造这样的签名。

gpg(GNU Privacy Guard)是安全用于签名文件和检查其签名的工具。

apt-key是用于管理gpg密钥的密钥环以实现安全apt的程序。密钥环保存在文件中/etc/apt/trusted.gpg (不要与相关的混淆,但不是很有趣 /etc/apt/trustdb.gpg)。apt-key可用于显示密钥环中的密钥,以及添加或删除密钥。

每次将另一个apt存储库添加到时/etc/apt/sources.list,如果您希望易于信任它,还必须提供apt的密钥。获取密钥后,可以通过检查密钥的指纹然后使用您的私钥对该公钥进行签名来对其进行验证。然后,您可以使用以下命令将密钥添加到apt的密钥环中apt-key add <key>


10

您需要存储库密钥,以便可以验证您认为是从谁那里获得的软件包。

这是为了防止人们将不良软件包注入您的更新中。

您应尽可能添加存储库密钥。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.