Чтобы найти ключи хранилища с истекшим сроком действия и их идентификаторы, используйте apt-key
следующее:
LANG=C apt-key list | grep expired
Вы получите результат, подобный следующему:
pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]
Идентификатор ключа - это бит после /
ie BE1DB1F1
в этом случае.
Чтобы обновить ключ, запустите
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1
Примечание. Обновление ключа, очевидно, не будет работать, если сопровождающий пакета еще не загрузил новый ключ. В этом случае вы мало что можете сделать, кроме как связаться с сопровождающим, сообщить об ошибке в вашем дистрибутиве и т. Д.
Один вкладыш для обновления всех просроченных ключей: (спасибо @ryanpcmcquen)
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
Вам нужно получить новый ключ и добавить его, после чего apt обнаружит его и не будет жаловаться. Это не должно обычно случаться, но иногда случается. Что вам действительно нужно, так это знать шестнадцатеричный код ключа, который нужно добавить; как только вы это сделаете, оттуда это будет довольно сильно.
Некоторые примеры:
добавление ключей для бэкпорта : первые несколько строк - это то, что вам нужно, хотя вам понадобится ключ, который вам нужен.
добавление ключей аля Ubuntu
источник
У меня была похожая ошибка, но проблема была в системном времени. Год был 1961 :)
Я исправил системную дату / время и после этого смог обновить без про
источник
На вики Debian о SecureAPT я обнаружил, что должен удалить строку, содержащуюся в
non-us
/etc/apt/sources.list.Я действительно сделал это, и это сработало.
источник
Это также может произойти, когда дата не верна.
Проверьте дату с
Если он настроен неправильно, выполните следующие действия, чтобы установить автоматическую синхронизацию часового пояса и даты.
источник
Одна из весьма маловероятных, но иногда возможных причин этой ошибки - добавление одного и того же ключа дважды с разными датами истечения срока действия. Скорее всего, вы знаете, что этот ответ будет иметь отношение к вам.
Это может произойти, как и для меня, когда вы размещаете свой собственный репозиторий со своими собственными ключами. Если вы, когда срок действия ключа истекает, просто продлите срок его службы, а не измените его, и если вы установили исходный ключ с помощью preseeding, но обновленный ключ с помощью пакета deb, тогда старый ключ будет в наличии
/etc/apt/trusted.gpg
, а новый заканчивается как отдельный файл в/etc/apt/trusted.gpg.d/
. Старый ключ будет затенять новый, который будет полностью игнорироватьсяapt-key
. Удалите старый ключ, запустив егоgpg --keyring /etc/trusted.gpg --delete-keys <keyid>
, и ваш новый ключ будет обнаружен.Это немного нестандартная угловая конфигурация, но я надеюсь, что мой ответ может спасти некоторую путаницу в случае, если кто-то еще столкнется с этой проблемой по той же причине, что и я.
источник
Более простой oneliner:
for key in $(sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done
Я просто чувствую, что если вы делаете такие вещи, как использование
cut
более одного раза, есть лучший инструмент. (Кроме того, я создал это на основе другого вопроса .)источник
Вам не нужно ничего делать. Это просто предупреждение, вы можете видеть это из
W:
префикса.источник