Как добавить gpg-ключи репозитория, поскольку apt-key устарел?

После одного из моих недавних обновлений я заметил, что мои сторонние репозитории не обновляются из-за ошибки NO_PUBKEY от apt. Я часами искал исправление, но все исправления предполагают использование ключа apt. Однако это больше не работает, потому что оно устарело. Поэтому я вручную скопировал ключи одного репо из / usr / share / keyrings в /etc/apt/trusted.gpg.d в качестве теста, и, похоже, это сработало. Теперь все работает для этого приложения.

У меня вопрос: есть ли новая функция для загрузки ключей с сервера вместо функции apt-key ? Большинство сайтов не осознали это изменение и предлагают команду apt-key для своих ключей репо, которая теперь просто возвращает ошибки. И как обновить мои текущие ключи стороннего репо, если только у них есть проблема? Следует ли мне вручную скопировать ключи, как я упоминал выше, или есть более эффективное решение?

РЕДАКТИРОВАТЬ: Я нахожусь на 20.10. Apt-key работает до 20.04, но не после этого.

$ sudo apt update
Err:9 http://repo.vivaldi.com/stable/deb stable Release.gpg
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9658E8044A3AA3D6

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://repo.vivaldi.com/stable/deb stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9658E8044A3AA3D6
W: Failed to fetch http://repo.vivaldi.com/stable/deb/dists/stable/Release.gpg  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9658E8044A3AA3D6
W: Some index files failed to download. They have been ignored, or old ones used instead.
3
задан 25 November 2020 в 16:50

1 ответ

apt-key никогда не загружал ключи сам по себе. apt-key adv передал параметры в gpg, а gpg выполнил фактическую загрузку (apt-key — это сложный сценарий оболочки, который сам создает временные сценарии для запуска gpg). Вы по-прежнему можете использовать gpg для импорта ключей, например. вместо apt-key adv --recv-keys вы должны сделать что-то вроде:

sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/foo.gpg --recv-keys 9658E8044A3AA3D6

Или вместо wget ... | apt-key add -:

wget -qO - https://example.com/somekey.gpg |
  sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/example.gpg --import -

Примечания:

  1. GnuPG создаст доверенные хранилища в домашнем каталоге пользователя root. Используйте --homedir с какой-либо другой частью, если хотите этого избежать.
  2. GnuPG по умолчанию создает связки ключей в новом формате keybox, и они не работают с apt, но использование префикса gnupg-ring: заставляет использовать старый формат для некоторая причина.

Если в вашем программном обеспечении уже были установлены наборы ключей в /usr/share/keyrings, то, предположительно, в их записях sources.list должно быть что-то вроде [signed-by= /usr/share/keyrings/foo.gpg] (см. Вики Debian).

5
ответ дан 25 November 2020 в 10:10

Другие вопросы по тегам:

Похожие вопросы: