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

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

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

Передайте --allow-unauthenticated возможность для apt-get как в:

sudo apt-get --allow-unauthenticated upgrade

Со страницы руководства по apt-get:

--разрешить-не прошедший проверку подлинности
Игнорируйте, если пакеты не могут быть аутентифицированы, и не запрашивайте об этом. Это полезно для таких инструментов, как 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.listsudo apt -o Acquire::AllowInsecureRepositories=true \-o Acquire::AllowDowngradeToInsecureRepositories=true \update## if the 'apt update' above fails it is likely due to previously## having the GPG key and repository on the system, you can clean## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname## If you ever run `sudo apt-key del your-repos-keyID`## you may have to `sudo apt remove --purge repo-keyring-pkgname`## Update should run without the GPG warnings now that the key is installedapt-get updateapt-get install somepkg-from-repo

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

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

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

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

apt-get update

который выдал мне следующую ошибку :

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

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

Acquire::Check-Valid-Until false;

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

Я думаю, это может сработать и в ubuntu.

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

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

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

Благодаря php-программисткак.

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