LinuxFAQ.ru

apt-key deprecated — как исправить ошибки добавления GPG-ключей в Linux

Если при работе с пакетным менеджером apt вы столкнулись с предупреждением «apt-key is deprecated», эта статья поможет понять причину и научит правильно добавлять GPG-ключи репозиториев через безопасный и современный способ.

Почему появляется ошибка apt-key is deprecated

  • Устаревание утилиты apt-key из-за проблем с безопасностью и несоответствия современным практикам.
  • Распознавание ключей через один общий файл /etc/apt/trusted.gpg усложняет аудит и управление.
  • Неудобство удаления или обновления ключей, когда они помещены в один файл.
  • Современные версии Debian и Ubuntu рекомендуют хранить ключи в каталоге /etc/apt/trusted.gpg.d/ в отдельном формате.

Пошаговое решение

Шаг 1. Определите ключ, который нужно заменить

Выведите текущие ключи apt для поиска нужного ключа или его ID.

apt-key list

Команда покажет список всех ключей. Запишите идентификатор ключа (pub и uid), который вызывает ошибку или используется в вашем источнике репозитория.

Шаг 2. Загрузите GPG-ключ нового репозитория в файл

Скачайте ключ в формате ASCII и сохраните в каталог /usr/share/keyrings/ под понятным именем. Например:

curl -fsSL  | sudo tee /usr/share/keyrings/-archive-keyring.gpg > /dev/null

Замените на реальный URL с публичным ключом (часто это можно найти в документации репозитория). В результате команда загрузит и сохранит ключ в бинарном формате OpenPGP.

Шаг 3. Отредактируйте файл .list репозитория

Замените в определении репозитория строку с ключом, используя опцию signed-by, чтобы указать путь к ключу.

Например, если у вас в /etc/apt/sources.list.d/example.list есть строка:

deb http://archive.ubuntu.com/ubuntu focal main

то измените её на:

deb [signed-by=/usr/share/keyrings/example-archive-keyring.gpg] http://archive.ubuntu.com/ubuntu focal main

Здесь signed-by указывает apt использовать только заданный ключ для проверки пакетов из данного источника.

Шаг 4. Удалите старые ключи из apt-key (опционально)

Чтобы убрать устаревшие ключи, можно удалить их из хранилища trusted.gpg. Для этого сначала покажите ключи с идентификаторами:

apt-key list

Далее удалите ключ по ID (обратите внимание, что команда требует прав суперпользователя):

sudo apt-key del 

Замена происходит по коду, например 12345678. Удаление ключей помогает избежать конфликтов и дублирования.

Шаг 5. Обновите список пакетов

sudo apt update

Команда подтянет метаданные с репозиториев и проверит пакеты в соответствии с новыми ключами.

Альтернативные методы

Если невозможно получить ключ через curl, можно скачать его вручную и конвертировать:

Загрузка публичного ключа и конвертация в формат gpg

wget -O-  | gpg --dearmor | sudo tee /usr/share/keyrings/.gpg > /dev/null

Это скачивает ключ и преобразует его из ASCII в бинарный формат OpenPGP. Такой файл можно использовать как в шаге 3.

Использование -o для указания файла ключа в apt-add-repository

Некоторые PPA и сторонние репозитории позволяют добавлять ключ с помощью:

sudo add-apt-repository 'deb [signed-by=/usr/share/keyrings/.gpg] http://example.repo/ ubuntu main'

Рекомендуется проверять документацию репозитория, так как новые стандарты требуют явного указывания ключа.

Проверка результата

  1. Убедитесь, что при выполнении sudo apt update не появляются предупреждения об устаревших ключах или «apt-key».
    sudo apt update

    Вывод должен содержать только успешное обновление и отсутствие ошибок, связанных с ключами.

  2. Проверьте, что ключи расположены в каталоге /usr/share/keyrings/ или /etc/apt/trusted.gpg.d/:
    ls -l /usr/share/keyrings/

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

  3. Если удаляли ключи из apt-key, проверьте их отсутствие:
    apt-key list

    Ненужный ключ не должен появляться в списке.

Как избежать в будущем

  • Не используйте apt-key add — переходите на добавление ключей в файлы .gpg по пути /usr/share/keyrings/.
  • Всегда указывайте опцию signed-by в файлах .list, чтобы менеджер apt знал, какой ключ применять.
  • Регулярно проверяйте свои репозитории и обновляйте ключи согласно официальной документации.

FAQ

Почему apt-key больше не рекомендуется?
Из-за проблем безопасности и проблем с управлением ключами, apt-key объявлен устаревшим и будет удалён в будущих версиях.

Что делать, если репозиторий не предоставляет ключ в нужном формате?
Загрузите ключ, затем конвертируйте через gpg --dearmor в бинарный формат.

Можно ли использовать ключи из /etc/apt/trusted.gpg вместо /usr/share/keyrings/?
Технически да, но это нежелательно — рекомендуется хранить ключи отдельно и указывать их явно для безопасности.

Смотрите также: Как настроить репозитории в Debian и Ubuntu.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие материалы