Как обойти/игнорировать проверки подписи gpg в apt?

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

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

Я очень хорошо понимаю, что это опасно

Передайте параметр --allow-unauthenticated в apt-get, как в:

sudo apt-get --allow-unauthenticated upgrade

Согласно справочной странице apt-get:

–allow-unauthenticated
Игнорировать, если пакеты не могут быть аутентифицированы, и не запрашивать об этом. Это полезно для инструментов, таких как pbuilder. Элемент конфигурации:
APT::Get::AllowUnauthenticated.

Вы можете сделать эту настройку постоянной, используя свой файл конфигурации в директории /etc/apt/apt.conf.d/. Имя файла может быть 99myown, и оно может содержать эту строку:

APT::Get::AllowUnauthenticated "true";

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

Если вы пытаетесь получить пакет из репозитория, где они упаковали ключи и включили их в репозиторий и нигде больше, может быть очень неприятно скачивать и устанавливать пакет ключей/ключевого кольца с помощью dpkg, и это очень сложно сделать в легко скриптируемом и повторяемом порядке.

Скрипт ниже не рекомендуется, если вы можете установить ключи с ключевого сервера или скачать их из надежного источника через https, но если у вас нет НИКАКИХ других способов, вы можете использовать это.

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list

sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## если 'apt update' выше дает ошибку, это вероятно из-за того, что
## ранее был GPG ключ и репозиторий в системе, вы можете очистить
## старые списки с `sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## Если вы когда-либо выполните `sudo apt-key del your-repos-keyID`
## вам может понадобиться `sudo apt remove --purge repo-keyring-pkgname`
## Обновление должно проходить без предупреждений GPG, теперь когда ключ установлен

apt-get update
apt-get install somepkg-from-repo

Я изначально собрал это, потому что i3 в их репозитории sur5r делает это, но потом я узнал, что их ключи находятся в списке keyserver.ubuntu.com, так что я просто могу sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6 и избежать всех дополнительных проблем с пакетами.

Я столкнулся с той же проблемой на старом сервере Debian. Я даже не мог выполнить

apt-get update

что дало мне следующую ошибку:

E: Файл релиза истек, игнорируя http://archive.debian.org/debian/dists/squeeze-lts/Release (недействителен с 1183d 0h 2min 51s)

В конце концов решение заключалось в том, чтобы добавить это:

Acquire::Check-Valid-Until false;

в /etc/apt/apt.conf (создайте его, если он не существует).
После этого ошибка стала простым предупреждением.

Я думаю, что это может сработать и на Ubuntu.

Пожалуйста, имейте в виду, что это частично небезопасно, но все же безопаснее, чем отключение проверок подписи.

Возможно, вы сможете попробовать создать файл /etc/apt/apt.conf (он будет прочитан, если вы его создадите) и вставить этот код:

APT{Ignore {"gpg-pubkey"; }};

после того, как продолжали пробовать, это наконец помогает.
Принудительное обновление из неподписанного репозитория

В новых версиях Ubuntu вместо –allow-unauthenticated можно использовать –allow-insecure-repositories.

Чтобы выполнить обновление, команда будет такой

sudo apt-get update –allow-insecure-repositories

Создайте /etc/apt/apt.conf.d/99allow_unauth с этим содержимым:

APT { Get { AllowUnauthenticated "1"; }; };

Благодаря php-coder‘s комментарию.

Использование этого синтаксиса в вашем файле sources.list также может помочь:

deb [ allow-insecure=yes ] http...

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

Как обойти/игнорировать проверки подписей gpg в apt

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

1. Использование параметра --allow-unauthenticated

Вы можете добавить опцию --allow-unauthenticated к команде apt-get. Это позволит игнорировать любые ошибки аутентификации пакетов. Вот как выглядит эта команда:

sudo apt-get --allow-unauthenticated upgrade

В соответствии с документацией apt-get, данная опция:

–allow-unauthenticated — Игнорировать пакеты, не прошедшие аутентификацию, и не запрашивать об этом подтверждение. Это полезно для инструментов вроде pbuilder.

Если вы хотите сделать эту настройку постоянной, создайте файл конфигурации в директории /etc/apt/apt.conf.d/ с названием, например, 99myown, и добавьте в него следующую строку:

APT::Get::AllowUnauthenticated "true";

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

2. Игнорирование ненадежных репозиториев

Когда вы подключаетесь к репозиторию, в котором ключи упакованы и доступны только через него, вы можете использовать следующие параметры для команды apt. Это позволяет игнорировать ошибки, связанные с отсутствующими подписями:

apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

Если после выполнения команды apt update возникли проблемы из-за ранее установленных ключей или репозиториев, вы можете очистить списки:

sudo rm /var/lib/apt/lists/your.repo.domain*

3. Установка пакетов с неподписанных репозиториев

Если вам необходимо установить пакет из репозитория без проверки подлинности, используйте команду:

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

4. Отключение проверки подлинности для устаревших репозиториев

Если у вас есть сообщения, что файлы релиза устарели (например, E: Release file expired), вы можете отключить проверку срока годности, добавив следующую строку в файл /etc/apt/apt.conf (создайте его, если он отсутствует):

Acquire::Check-Valid-Until false;

Это действие превратит ошибку в предупреждение, что менее опасно.

5. Альтернативные способы

Вы также можете создать файл /etc/apt/apt.conf с содержимым:

APT{Ignore {"gpg-pubkey"; }};

Это позволит игнорировать определенные предупреждения и ошибки, связанные с GPG.

Заключение

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

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

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