Fix Ubuntu/Debian apt-get “KEYEXPIRED: The following signatures were invalid”

Советы и подсказки по софту, работе в операционных системах, комплектующих и сборок компьютеров.
Аватара пользователя
toxi
Администратор
Администратор
Articles: 0
Сообщения: 492
Зарегистрирован: 12-04-2008 07:58:25
Ваш пол: Мужской
Имя: Роман
Откуда: Украина, г. Житомир
Контактная информация:

Fix Ubuntu/Debian apt-get “KEYEXPIRED: The following signatures were invalid”

Сообщение toxi »

Запуск операционной системы Ubuntu или Debian на ваших серверах обеспечивает долгий срок службы. Вы не будете часто менять серверы и переносить свои приложения.
Вы будете время от времени обслуживать свою систему и обновлять установленные пакеты, чтобы обеспечить безопасность системы.
Недавно при обслуживании программного обеспечения на нашем сервере мы столкнулись с ошибкой „The following signatures were invalid: KEYEXPIRED 1544811256“ во время работы команды apt-get update.

Эта ошибка возникает, когда ваша система устанавливает службы из сторонних репозиториев, как мы это делали с MongoDB.

Проблема.
Вы узнаете следующий вывод лога при работе apt-get update на системе Ubuntu 16.04:

Код: Выделить всё

$ sudo apt-get update

Ign:11 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 InRelease  
Hit:12 https://repos.sonar.digitalocean.com/apt main InRelease  
Hit:13 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release  
Err:17 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release.gpg  
  The following signatures were invalid: KEYEXPIRED 1544811256
Fetched 1930 kB in 3s (601 kB/s)  
Reading package lists... Done

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release: The following signatures were invalid: KEYEXPIRED 1544811256

W: Failed to fetch https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/3.6/Release.gpg  The following signatures were invalid: KEYEXPIRED 1544811256  
W: Some index files failed to download. They have been ignored, or old ones used instead.

Ключ GPG репозитория MongoDB истек на этом сервере. Чтобы решить эту проблему, вам нужно обновить ключ в вашей системе. Вот шаги, чтобы обновить истекший ключ:

Шаг 1. Найдите ключ с истекшим сроком действия
Найдите ключ с истекшим сроком действия в списке ключей apt. Вы можете запустить команду apt-key list, чтобы получить список всех установленных ключей. Используйте команду ниже, если вы хотите отфильтровать ключи с истекшим сроком действия:

Код: Выделить всё

$ sudo apt-key list | grep -A 1 expired

pub   4096R/91FA4AD5 2016-12-14 [expired: 2018-12-14]  
uid                  MongoDB 3.6 Release Signing Key <packaging@mongodb.com>

Этот результирующий список показывает все пакеты с соответствующими деталями ключа. Важная часть - это ключ 91FA4AD5. Скопируйте эту часть, потому что она вам понадобится на втором этапе.
На момент написания этого руководства это 18 декабря 2018 г., а срок действия ключа истек четыре дня назад (14 декабря 2018 г.).

Шаг 2: Продлите истекший ключ
Теперь, когда вы знаете, у какого ключа истек срок действия, продлите его. Используйте следующую команду и замените <KEY> на значение вашего ключа (то, которое вы скопировали сверху):

Код: Выделить всё

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys <KEY>
Для ключа GPG MongoDB с истекшим сроком действия, команда и выходные данные выглядят следующим образом:

Код: Выделить всё

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 91FA4AD5

Executing: /tmp/tmp.XC8EiRvH3E/gpg.1.sh --keyserver  
hkp://keyserver.ubuntu.com:80  
--recv-keys
91FA4AD5  
gpg: requesting key 91FA4AD5 from hkp server keyserver.ubuntu.com  
gpg: key 91FA4AD5: "MongoDB 3.6 Release Signing Key <packaging@mongodb.com>" 1 new signature  
gpg: Total number processed: 1  
gpg:         new signatures: 1

Отлично! Обработка ключа завершена, и ваша система получила новый ключ. Запустите команду, чтобы снова найти устаревшие ключи и убедиться, что список пуст.

Шаг 3. Повторно запустите обновление.
Теперь повторно запустите apt-get update команду для обновления ваших репозиториев 👌

Код: Выделить всё

$ sudo apt-get update
Вот и все. Теперь вы можете обновить свою систему с помощью обновленных пакетов. Наслаждайтесь!
Читаем "Правила форума", перед созданием сообщения/темы