我已经创建了自己的Debian存储库并遇到了这个问题。
我知道
--ignore-release-gpg
或
gpg --keyserver pgp.mit.edu --recv-keys xxxxxxxxx
gpg --armor --export xxxxxxxxx | apt-key add -
两个问题:
答案 0 :(得分:1)
回答#1:它的设计是一种安全机制。 APT不是人类,不知道信任什么或信任谁。只能在您信任的人的密钥环中导入密钥。 GPG验证可防止对包内容的中间人攻击,并验证包的完整性是否与上载到存档/存储库时的状态相同。这样,即使官方镜像上的管理员也无法在没有注意到的情况下篡改文件。 另请参阅this question。
和#2:在安装时安装了一些密钥。 Debian存档和Debian开发人员的主要密钥位于包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验证。我真的不建议这样做,因为它会影响所有存储库。