Почему 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-getтребует от меня apt-get updateисправления, что вызывает недовольство. Как мне это исправить?

хаос
источник

Ответы:

16

Попробуйте сделать это и снова запустить apt-get:

apt-key update

apt-key - это программа, которая используется для управления связкой ключей gpg для безопасного apt. Брелок хранится в файле /etc/apt/trusted.gpg (не путать с соответствующим, но не очень интересным /etc/apt/trustdb.gpg). apt-key может использоваться для отображения ключей в связке ключей, а также для добавления или удаления ключа.

Дополнительная информация о вики Debian: 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 делает что-то, только если установлен пакет debian-archive-keyring. В общем, это не требуется, установка пакета обновляет связку ключей APT автоматически. Второе предложение не очень безопасно, поскольку вы не проверяете, что ключ принадлежит проекту Debian. Вы должны действительно проверить его подписи, прежде чем включить его. Кроме того, добавление всего набора ключей - это плохо, вам нужен только что загруженный ключ, поэтому «gpg --export 9AA38DCD55BE302B | apt-key add - »было бы лучше ...
Raphaël Hertzog
12

или сделай sudo apt-get install debian-archive-keyringпервый.

после этого вы можете продолжить нормальное

lepole
источник
Это решило проблему для меня на древнем сервере Etch, с определениями хранилища, указывающими на archive.debian.org/debian
Амос Шапира,
Можно подтвердить, что это работает на старом etch на PPP
Росс W
6

Чтобы убедиться в происхождении пакета, который вы скачали, APT захочет проверить подписи файла Release. Если он не может проверить это, он будет жаловаться на сообщение, которое вы видели. В этом случае вам необходимо установить соответствующий ключ 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, что это уже не так, но я документирую это здесь на случай, если это кому-то поможет.

Марк Янг
источник