Подключение GPG-ключа Pangolin и проверка подписи пакетов
Данный раздел описывает процедуру подключения публичного GPG-ключа Pangolin к системе или локальному репозиторию, а также методы проверки подписи пакетов.
Подключение GPG-ключа к системе
Публичный GPG-ключ Pangolin должен быть доступен из репозитория продукта или передаваться вместе с релизом. Выполните следующие шаги для подключения ключа:
Имя GPG-ключа: Platform V Pangolin DB (Pangolin GPG-key) <pangolin@sbertech.ru>
- SberLinux, РЕД ОС, CentOS
- ALT Linux
- Astra Linux, Debian
-
Скопируйте публичный ключ в директорию GPG-ключей:
sudo cp PANGOLIN-GPG-PUBLIC-KEY /etc/pki/rpm-gpg/ -
Импортируйте ключ в базу GPG пакетного менеджера:
sudo rpm --import /etc/pki/rpm-gpg/PANGOLIN-GPG-PUBLIC-KEY -
Проверьте успешность импорта ключа:
rpm -q --queryformat '%{SUMMARY}\n' gpg-pubkeyили:
gpg --list-keys "pangolin@sbertech.ru" -
Для настройки репозитория с проверкой подписи создайте или отредактируйте файл
/etc/yum.repos.d/pangolin.repoс содержимым:[pangolin]name=Pangolin Repositorybaseurl=file:///path/to/pangolin/repo/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/PANGOLIN-GPG-PUBLIC-KEYПараметры:
gpgcheck=1— включена проверка подписи пакетов и метаданных репозитория;gpgkey=file:///...— путь к публичному GPG-ключу.
-
Скопируйте публичный ключ:
sudo cp PANGOLIN-GPG-PUBLIC-KEY /usr/share/keyrings/pangolin-gpg-key.asc -
Импортируйте ключ:
sudo rpm --import /usr/share/keyrings/pangolin-gpg-key.asc -
При добавлении репозитория используйте команду
apt-repo:sudo apt-repo add "rpm-dir file:///path/to/pangolin/repo pangolin"Для включения проверки подписи убедитесь, что ключ импортирован в систему через
rpm --import.
-
Скопируйте публичный ключ:
sudo cp PANGOLIN-GPG-PUBLIC-KEY /usr/share/keyrings/pangolin-gpg-key.asc -
Для старых версий операционной системы выполните дополнительно:
sudo apt-key add /usr/share/keyrings/pangolin-gpg-key.asc -
Создайте или отредактируйте файл
/etc/apt/sources.list.d/pangolin.list:# Способ 1: с указанием ключа через signed-by (рекомендуется)deb [signed-by=/usr/share/keyrings/pangolin-gpg-key.asc] file:///path/to/pangolin/repo stable main# Способ 2: с trusted=yes (проверка подписи метаданных, ключ из apt-key)deb file:///path/to/pangolin/repo stable main -
Обновите кеш пакетного менеджера:
sudo apt update
Проверка подписи пакетов
- SberLinux, РЕД ОС, CentOS
- ALT Linux
- Astra Linux, Debian
-
Проверьте подпись отдельного RPM-пакета:
rpm --checksig <package>.rpmПример вывода при успешной проверке:
package-name-1.0.x86_64: rsa sha256 (ecdsa sha256) pgp md5 OK -
Для получения подробной информации о подписи выполните:
rpm -qpi <package>.rpm | grep -i sign -
Для проверки всех пакетов в директории выполните:
for rpm_file in /path/to/repo/*.rpm; doecho "=== $(basename $rpm_file) ==="rpm --checksig "$rpm_file"done
Подпись применяется к метаданным репозитория, а не к отдельным пакетам.
-
Выполните обновление кеша пакетного менеджера:
apt update -
При успешной проверке подписи предупреждения отсутствуют. При невалидной подписи будет выведено сообщение:
W: Failed to fetch file:///path/to/repo/Release.gpg Signature by key ... is not trusted
Подпись применяется к файлам InRelease / Release.gpg.
-
Выполните обновление кеша пакетного менеджера:
apt update -
Вывод при успешной проверке:
Hit:1 file:///path/to/pangolin/repo stable InRelease -
При ошибке подписи будет выведено сообщение:
W: A release file could not be for this repository.W: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
Устранение неполадок
«Public key for <package>.rpm is not installed»
Причина: GPG-ключ не импортирован в систему.
Решение:
sudo rpm --import /etc/pki/rpm-gpg/PANGOLIN-GPG-PUBLIC-KEY
«Header V3 RSA/SHA256 Signature, key ID ...: NOKEY»
Причина: Ключ указан в конфиге репозитория, но не импортирован глобально.
Решение: Убедитесь, что параметр gpgkey в .repo файле указывает на корректный путь к ключу.
«The following signatures were invalid»
Причина: Публичный ключ не соответствует ключу, которым были подписаны пакеты.
Решение: Получите правильный ключ.
Проверка наличия GPG-ключа в системе
# Для RPM-систем:
rpm -q gpg-pubkey
# Для всех систем:
gpg --list-keys "Pangolin"
# Проверка fingerprints:
gpg --fingerprint "pangolin@sbertech.ru"
Справочная информация
| Параметр | Значение |
|---|---|
| Имя ключа | Platform V Pangolin DB (Pangolin GPG-key) |
| Email ключа | pangolin@sbertech.ru |
| Формат ключа | ASCII-armored GPG (.asc) |
| Путь по умолчанию (RPM) | /etc/pki/rpm-gpg/PANGOLIN-GPG-PUBLIC-KEY |
| Путь по умолчанию (DEB) | /usr/share/keyrings/pangolin-gpg-key.asc |
| Поддерживаемые версии | 6.9.0+ |