Debian apt无法获得以下签名';无法验证,因为公钥不可用

Debian apt无法获得以下签名';无法验证,因为公钥不可用,debian,gnupg,apt-get,Debian,Gnupg,Apt Get,我已经创建了自己的Debian存储库,但遇到了这个问题 我知道 ——忽略发布gpg 或 gpg--keyserver pgp.mit.edu--recv keys xxxxxxxxx gpg--armor--export xxxxxxxxx | apt key add- 两个问题: 为什么apt get不会自动从联机存储库导入此公钥 为什么我在其他存储库中看不到此消息 回答#1:它在设计上是一种安全机制。APT不是人,不知道该信任什么或谁。仅在您信任的人的钥匙圈中导入密钥。GPG验证可防

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

我知道

  • ——忽略发布gpg

  • gpg--keyserver pgp.mit.edu--recv keys xxxxxxxxx
  • gpg--armor--export xxxxxxxxx | apt key add-
两个问题:

  • 为什么apt get不会自动从联机存储库导入此公钥
  • 为什么我在其他存储库中看不到此消息
  • 回答#1:它在设计上是一种安全机制。APT不是人,不知道该信任什么或谁。仅在您信任的人的钥匙圈中导入密钥。GPG验证可防止对包内容的中间人攻击,并验证包的完整性是否与上载到存档/存储库时处于相同的状态。这样,即使是官方镜像上的管理员也无法在您不注意的情况下篡改文件。 另见

    和#2:一些键在安装时安装。Debian归档文件和Debian开发者的主键在包
    Debian keyring
    中,并标记为可与apt一起使用的受信任密钥

    回到您的目标—维护您自己的Debian软件包存储库而不出现这些错误。最好的解决方案是对存档中的所有包进行签名,并让存储库的用户安装公钥。这就是它通常的工作方式,例如,请参见如何处理它

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

    如果你使用Ubuntu和构建免费软件,考虑使用PPA。Ubuntu的PPAs(个人软件包档案)带有简洁的用户友好脚本,用于安装存储库以及用于验证的GPG密钥。(

    apt添加存储库ppa:my ppa/myarchive


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

    我认为最好在superuser.com上回答您的问题。您是否安装了包
    debian keyring
    ?您是如何创建存储库的?