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

Поради та підказки щодо софту, роботи в операційних системах, комплектуючих та зборок комп'ютерів.
Аватар користувача
toxi
Администратор
Администратор
Статті: 0
Повідомлень: 532
З нами з: 12-04-2008 07:58:25
Ваша стать: Чоловічий
І'мя: Roman
Контактна інформація:

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 <[email protected]>

Этот результирующий список показывает все пакеты с соответствующими деталями ключа. Важная часть - это ключ 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 <[email protected]>" 1 new signature  
gpg: Total number processed: 1  
gpg:         new signatures: 1

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

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

Код: Виділити все

$ sudo apt-get update
Вот и все. Теперь вы можете обновить свою систему с помощью обновленных пакетов. Наслаждайтесь!
Правила форуму :: Виконую послуги IT-адміністратора (види послуг).