Если во время выполнения apt update
вы встречаетесь с ошибкой при попытке прочитать список пакетов в репозитории:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <key>
Или в конце команда apt update
выдаёт что-то типа:
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.<vendor>.com/debian unstable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <public-key>
W: Failed to fetch https://repo.<vendor>.com/debian/dists/unstable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <public-key>>W: Some index files failed to download. They have been ignored, or old ones used instead.
Решение начиная с версии Ubuntu 20.10
Так как apt-key
и add-apt-repository
стали deprecated, то будем использовать набор команд:
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x<public-key>' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/<vendor>.gpg
Где:
- public-key — это значение показанное после NO_PUBKEY.
- vendor — название программы или поставщика программы, которое вы хотите дать ключу.
Решение до версии Ubuntu 20.10
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <public-key>
Где:
- public-key — это значение показанное после NO_PUBKEY.
Альтернативный вариант
Можно скачать ключ вручную через браузер, используя поиск на https://keyserver.ubuntu.com .
В случае ошибки:
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: stable InRelease: The following signatures were invalid: EXPKEYSIG .
Можно воспользоваться обновлением ключей с сервера:
apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com