gpg:由于缺少密钥,未检查 1 个签名

dio*_*ogo 7 apt gnupg keyserver

不能sudo apt-get update

Ign:8 http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04  Release.gpg
Reading package lists... Done    
W: GPG error: http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04  Release: The following signatures were invalid: EXPKEYSIG 5A7D1D38BEB6D886 home:Horst3180 OBS Project <home:Horst3180@build.opensuse.org>
E: The repository 'http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04  Release' is not signed.
Run Code Online (Sandbox Code Playgroud)

从无数次尝试中,我得到

1 signature not checked due to a missing key
Run Code Online (Sandbox Code Playgroud)

我的尝试是:

sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-keys 5A7D1D38BEB6D886
Executing: /tmp/apt-key-gpghome.f5yVraTkTa/gpg.1.sh --keyserver hkp://keys.gnupg.net:80 --recv-keys 5A7D1D38BEB6D886
gpg: key 5A7D1D38BEB6D886: 1 signature not checked due to a missing key
gpg: key 5A7D1D38BEB6D886: "home:Horst3180 OBS Project <home:Horst3180@build.opensuse.org>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Run Code Online (Sandbox Code Playgroud)

我越来越近了吗?其他没有结果的尝试包括:

  1. 这个命令

    wget -nv http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04/Release.key -O Release.key
    
    sudo apt-key add - < Release.key
    
    Run Code Online (Sandbox Code Playgroud)
  2. software.opensuse.org

    sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/home:Horst3180.list"
    wget -nv https://download.opensuse.org/repositories/home:Horst3180/xUbuntu_16.04/Release.key -O Release.key
    sudo apt-key add - < Release.key
    
    Run Code Online (Sandbox Code Playgroud)
  3. 这个命令

    sudo rm /var/lib/apt/lists/* -vf
    
    Run Code Online (Sandbox Code Playgroud)
  4. 这个命令

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5A7D1D38BEB6D886
    
    Run Code Online (Sandbox Code Playgroud)

    返回

    Executing: /tmp/apt-key-gpghome.9tPKjtyC1E/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 5A7D1D38BEB6D886
    gpg: keyserver receive failed: No keyserver available
    
    Run Code Online (Sandbox Code Playgroud)

请注意,在Horst3180 的 Home Project 中,GPG 密钥5A7D1D38BEB6D886的有效期为2019-10-02,因此该密钥似乎不再有效。

Piz*_*zza 3

一般来说,如果 gpg 密钥过期,当您不是存储库的所有者时,您无能为力,除了尝试联系管理员。

如果您信任此存储库,或者确实需要其中的某些内容并且不太关心此安全功能,您也可以通过--allow-unauthenticated向 apt-get 添加选项来跳过 gpg 检查。

例子:sudo apt-get --allow-unauthenticated updatesudo apt-get -y --allow-unauthenticated install foo

您还可以通过在/etc/apt/apt.conf.d/目录中使用您自己的配置文件来使此选项永久化。在您的 conf 文件中只需添加APT::Get::AllowUnauthenticated "true"; stanza.

注意:如果选择永久选项,您应该仔细添加选项,以便这仅对该特定存储库生效,而不是对所有其他存储库生效,因为它被认为存在安全风险。


小智 0

当密钥仍然有效时也可能会发生相同的错误。我有一个 Release.key 在一台 ubuntu 机器上工作正常,但在另一个系统上工作正常

apt-key add Release.key爆炸与

 gpg: invalid key resource URL '/tmp/apt-key-gpghome.L3TpJ04C0i/isv:ownCloud:desktop.asc.gpg'
 gpg: keyblock resource '(null)': General error
 gpg: key 4ABE1AC7557BEFF9: 1 signature not checked due to a missing key
 gpg: key 4ABE1AC7557BEFF9: 1 signature not checked due to a missing key
 gpg: key 3B4FE6ACC0B21F32: 3 signatures not checked due to missing keys
 gpg: key D94AA3F0EFE21092: 3 signatures not checked due to missing keys
 gpg: key 871920D1991BC93C: 1 signature not checked due to a missing key
 gpg: Total number processed: 6
 gpg:       skipped new keys: 6
Run Code Online (Sandbox Code Playgroud)

但例如gpg --import < Release.key可以很好地导入密钥。(知道这一点很好,但对 apt 没有帮助。)

手动解决方法(但不适用于过期的密钥):

cat Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/owncloud-test.gpg

然后,无需任何未经身份验证的欺骗即可成功apt updateapt install ...似乎 apt-key add 对我的系统之一过于挑剔。