Дебиан PPC: apt update: “Err: No good signature”, импорт через apt-key не помогает

Вопрос или проблема

Debian sid, ppc порт

apt -y update
Get:1 http://ftp.ports.debian.org/debian-ports sid InRelease [75.0 kB]
Err:1 http://ftp.ports.debian.org/debian-ports sid InRelease
  Неправильная подпись
Get:2 http://ftp.ports.debian.org/debian-ports unreleased InRelease [50.8 kB]
Err:2 http://ftp.ports.debian.org/debian-ports unreleased InRelease
  Неправильная подпись
Предупреждение: ошибка GPG: http://ftp.ports.debian.org/debian-ports sid InRelease: Неправильная подпись
Ошибка: Репозиторий 'http://ftp.ports.debian.org/debian-ports sid InRelease' не подписан.
Уведомление: Обновление из такого репозитория невозможно сделать безопасно, и поэтому оно отключено по умолчанию.
Уведомление: См. man-страницу apt-secure(8) для создания репозитория и деталей конфигурации пользователя.
Предупреждение: ошибка GPG: http://ftp.ports.debian.org/debian-ports unreleased InRelease: Неправильная подпись
Ошибка: Репозиторий 'http://ftp.ports.debian.org/debian-ports unreleased InRelease' не подписан.
Уведомление: Обновление из такого репозитория невозможно сделать безопасно, и поэтому оно отключено по умолчанию.
Уведомление: См. man-страницу apt-secure(8) для создания репозитория и деталей конфигурации пользователя.
Уведомление: Отсутствует Signed-By в записи sources.list(5) для 'http://ftp.ports.debian.org/debian-ports'
Уведомление: Отсутствует Signed-By в записи sources.list(5) для 'http://ftp.ports.debian.org/debian-ports'
Уведомление: Рассмотрите возможность миграции всех записей sources.list(5) в формат deb822 .sources
Уведомление: Формат deb822 .sources поддерживает как встроенные, так и внешние OpenPGP ключи
Уведомление: См. apt-secure(7) для лучших практик в настройке подписи репозитория

Как вы видите, команда не удалась, потому что репозиторий не подписан

Я обычно исправляю это, импортируя ключ с помощью apt-key, но…

   curl -L http://ftp.ports.debian.org/debian-ports/dists/sid/Release.gpg | sudo apt-key add -
sudo: apt-key: команда не найдена
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1597  100  1597    0     0  14606      0 --:--:-- --:--:-- --:--:-- 14651
curl: Ошибка записи тела
root@ibmlinux:~$ 

Я также попробовал переустановить ключи

apt-get -o APT::Get::AllowUnauthenticated=true reinstall debian-archive-keyring debian-ports-archive-keyring

но…

apt-get -y update 
Get:1 http://deb.debian.org/debian-ports sid InRelease [75.0 kB]
Err:1 http://deb.debian.org/debian-ports sid InRelease
  Неправильная подпись
Get:2 http://deb.debian.org/debian-ports unreleased InRelease [50.8 kB]
Err:2 http://deb.debian.org/debian-ports unreleased InRelease
  Неправильная подпись
Чтение списков пакетов... Готово
W: ошибка GPG: http://deb.debian.org/debian-ports sid InRelease: Неправильная подпись
E: Репозиторий 'http://deb.debian.org/debian-ports sid InRelease' не подписан.
N: Обновление из такого репозитория невозможно сделать безопасно, и поэтому оно отключено по умолчанию.
N: См. man-страницу apt-secure(8) для создания репозитория и деталей конфигурации пользователя.
W: ошибка GPG: http://deb.debian.org/debian-ports unreleased InRelease: Неправильная подпись
E: Репозиторий 'http://deb.debian.org/debian-ports unreleased InRelease' не подписан.
N: Обновление из такого репозитория невозможно сделать безопасно, и поэтому оно отключено по умолчанию.
N: См. man-страницу apt-secure(8) для создания репозитория и деталей конфигурации пользователя.
N: Отсутствует Signed-By в записи sources.list(5) для 'http://deb.debian.org/debian-ports'
N: Отсутствует Signed-By в записи sources.list(5) для 'http://deb.debian.org/debian-ports'
N: Рассмотрите возможность миграции всех записей sources.list(5) в формат deb822 .sources
N: Формат deb822 .sources поддерживает как встроенные, так и внешние OpenPGP ключи
N: См. apt-secure(7) для лучших практик в настройке подписи репозитория.

apt-key устарел и был удалён. Рекомендуемый способ обращения к ключам, специфичным для репозитория, теперь заключается в их кодировании в определении репозитория; см. man 5 sources.list для подробностей.

Однако для репозиториев Ports это не лучший подход. Вместо этого вам следует скачать пакет ключей портов и установить его. Репозитории будут автоматически аутентифицированы; если вы хотите ограничить использование ключей, вы можете указать определение репозитория на соответствующий файл в /etc/apt/trusted.gpg.d (вероятно, debian-ports-archive-2025.asc, я не проверял).

Ответ или решение

При работе с Debian Sid на архитектуре PowerPC вы столкнулись с довольно распространенной проблемой: ошибка "No good signature" при обновлении репозиториев через команду apt update. Данная ошибка указывает на то, что репозитории, которые вы пытаетесь обновить, не подписаны должным образом и, соответственно, система их отвергает из-за соображений безопасности. Рассмотрим теоретическую часть, пример и пути решения этой проблемы.

Теория

Система пакетного управления APT в Debian требует, чтобы все репозитории были подписаны с использованием GPG-кодов. Это важно для обеспечения целостности и подлинности пакетов при их загрузке. В вашем случае, сообщения о "No good signature" говорят о том, что подписи InRelease файлов не доверены текущей конфигурацией вашей системы.

Ранее распространенный метод обхода этой проблемы заключался в использовании команды apt-key, которая позволяла добавлять ключи подписи в систему. Тем не менее, с недавних пор apt-key устарел и был удален из Debian, поскольку он создает потенциальные риски безопасности. Настоятельно рекомендуется использовать более современный и безопасный подход к управлению ключами.

Пример

Допустим, у вас есть репозиторий http://ftp.ports.debian.org/debian-ports, и при попытке его обновления вы видите следующую ошибку:

E: The repository 'http://ftp.ports.debian.org/debian-ports sid InRelease' is not signed.

Вы пробовали следующую команду, чтобы добавить ключ:

curl -L http://ftp.ports.debian.org/debian-ports/dists/sid/Release.gpg | sudo apt-key add -

Но она выдает ошибку, что apt-key: command not found.

Применение

Решение проблемы начинается с понимания, что следует использовать более современные методы, которые уже не опираются на apt-key. Один из предложенных и наиболее безопасных способов — это использование пакетов ключей архивов Debian.

Вот что можно сделать, чтобы исправить проблему:

  1. Установите пакет ключей для портов Debian.

    Сначала загрузите и установите пакет debian-ports-archive-keyring, который содержит ключи для аутентификации необходимых репозиториев:

    wget http://ftp.ports.debian.org/debian-ports/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2025.01.01_all.deb
    sudo dpkg -i debian-ports-archive-keyring_2025.01.01_all.deb
  2. Проверьте настройки вашего файлового источника.

    Убедитесь, что ваша конфигурация sources.list или sources.list.d не содержит ошибок и корректно ссылается на ключи. Переход на новый формат конфигурации в deb822 .sources может быть полезен. Формат deb822 поддерживает встроенные и внешние OpenPGP ключи и является более современным.

  3. Обновите ключи пакетов.

    Повторите настройку установленных ключей, чтобы убедиться, что они правильно восприняты системой. Перезапустите apt update, чтобы убедиться, что проблема решена. В случае, если ошибка сохраняется, проверка конфигурационных файлов на наличие дублирующих или неправильных ключей может помочь.

  4. Дополнительные ресурсы.

    Более подробнее об управлении репозиториями можно ознакомиться в документации apt-secure(8) и apt-key(8). Эти ресурсы помогут лучше понять механизмы проверки подлинности и способы их настройки.

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

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

Капча загружается...