0

我已经创建了自己的 Debian 存储库并遇到了这个问题。

我知道

  • --ignore-release-gpg

或者

  • gpg --keyserver pgp.mit.edu --recv-keys xxxxxxxxx
  • gpg --armor --export xxxxxxxxx | apt-key add -

两个问题:

  1. 为什么 apt-get 不会自动从在线存储库中导入此公钥?
  2. 为什么我在其他存储库中看不到此消息?
4

1 回答 1

1

回答 #1:它是其设计中的一种安全机制。APT 不是人类,也不知道该信任什么或信任谁。只在您信任的人的密钥环中导入密钥。GPG 验证可防止对包内容的中间人攻击,并验证包的完整性与上传到存档/存储库时的状态相同。这样,即使是官方镜像上的管理员也无法在您不注意的情况下篡改文件。另请参阅此问题

#2:一些密钥是在安装时安装的。Debian 档案和 Debian Developers 的主要密钥都在包中debian-keyring,并标记为可信任以与 apt 一起使用。

回到您的目标 - 维护您自己的 Debian 软件包存储库而不会出现这些错误。最好的解决方案是签署存档中的所有包,并让您的存储库的用户安装您的公钥。这是它通常的工作方式,例如参见VirtualBox.org如何处理这个问题。

一些随机陷阱:添加新密钥后不要忘记运行apt-get update(或)。aptitude update

如果您使用 Ubuntu 并构建免费软件,请考虑使用 PPA。Ubuntu 的 PPA(个人包档案)带有简洁的用户友好脚本来安装存储库以及用于验证的 GPG 密钥。( apt-add-repository ppa:my-ppa/myarchive)

一些网站提到如何通过APT::Get::AllowUnauthenticated yes;在其配置中设置来禁用 APT 验证。我真的不建议这样做,因为它会影响所有存储库。

于 2012-09-10T14:19:16.733 回答