为什么apt-get update告诉我运行apt-get update?


10

因此,我正在进行以下操作:

# apt-get update
Get:1 http://ftp.us.debian.org etch Release.gpg [1032B]                     
Hit http://ftp.us.debian.org etch Release                                        
(...bunch more of this elided...)
Hit http://ftp.us.debian.org etch/contrib Sources
Fetched 68.8kB in 1s (37.4kB/s)
Reading package lists... Done
W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: GPG error: http://ftp.us.debian.org etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems

显然我无法运行,apt-get update因为有一个问题需要apt-getapt-get update修复,这是令人不快的。我该如何纠正?

Answers:


16

尝试执行此操作,然后再次运行apt-get:

apt-key update

apt-key是一个程序,用于管理用于安全apt的gpg密钥的密钥环。密钥环保存在文件/etc/apt/trusted.gpg中(不要与相关的/etc/apt/trustdb.gpg混淆)。apt-key可用于显示密钥环中的密钥,以及添加或删除密钥。

有关Debian Wiki的更多信息:http : //wiki.debian.org/SecureApt

如果那不起作用,请尝试:

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
apt-key add /root/.gnupg/pubring.gpg
apt-get update 

试过了 没变化。:(
混乱,

5
apt-key update仅在安装了debian-archive-keyring软件包时才起作用。通常不需要,软件包安装会自动更新APT的密钥环。第二个建议不是很安全,因为您不验证密钥是否属于Debian项目。启用前,您应该真正检查其签名。此外,添加整个密钥环是不好的,您只需要新下载的密钥,因此“ gpg --export 9AA38DCD55BE302B | 易键添加- ”会比较好...
拉斐尔赫佐格


6

为了确保您下载的软件包的来源,APT将要验证发布文件的签名。如果无法验证,它将抱怨您看到的消息。在这种情况下,您必须安装相应的GPG密钥,以便APT可以正确验证文件。不幸的是,您不应盲目下载任何密钥,因为您确实只想允许存储库所有者拥有的受信任密钥。因此,您必须以确保其来源的方式下载它,而仅仅使用来下载gpg --recv-key并不能确保其来源。

使用安装新密钥apt-key add <key-file>。大多数非官方存储库都会在其网站上为您提供密钥,并为您提供类似的说明(URL当然有所不同):

wget -O - http://ftp-master.debian.org/keys/archive-key-5.0.asc | sudo apt-key add -

如果使用的是官方Debian镜像,则应自动安装正确的密钥,该密钥包含在软件包中,debian-archive-keyring并且其配置会自动激活密钥。因此,请确保已安装它,并确保它是最新的:

apt-get install debian-archive-keyring

如果您不信任自己的镜像,则也只能在使用之前的方法安装了正确的密钥之后才能安装它,而实际上我提供了所需的官方密钥的URL。

有关如何处理Debian存档密钥的更多信息,请查看http://ftp-master.debian.org/keys.html



2

由于透明代理为我提供了GPG密钥的旧版本,我遇到了这个问题,我通过使用wget强制代理获得新版本来解决了该问题,例如

wget --no-cache -O /tmp/Z http://security.debian.org/dists/lenny/updates/Release.gpg
wget --no-cache -O /tmp/Z2 http://security.debian.org/dists/lenny/updates/Release

所以我希望在您的情况下,以下命令可以解决该问题:

wget --no-cache -O /tmp/Z http://ftp.us.debian.org/dists/etch/Release.gpg
wget --no-cache -O /tmp/Z2 http://ftp.us.debian.org/dists/etch/Release

显然,我们已经远远超过Etch,以至于情况不再如此,但是我在这里记录在案,以防它对某人有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.