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

大多数情况下,只需添加软件包存储库,就可以在没有存储库密钥的情况下下载和安装软件包。 此外,一些存储库会在其信息旁边显示其密钥,因此很容易找到它们。 但

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

我从Ubuntu社区帮助Wiki中找到了一个很好的解释。

  • 什么是存储库?

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

Apt身份validation

Apt-get包管理使用公钥加密来validation下载的包。

  • Debian在这个wiki页面上很好地解释了Secure apt。

以下是从Debian维基页面收集的关键获取和validation过程的简短摘要。

基本概念公钥加密基于密钥对, public keyprivate keypublic 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是否从您认为自己获得该软件包的人那里获得了该软件包。

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

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