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

47

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

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

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

Ответы:

68

Передайте --allow-unauthenticatedопцию apt-getкак в:

sudo apt-get --allow-unauthenticated upgrade

Из справочной страницы apt-get:

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

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

APT::Get::AllowUnauthenticated "true";

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

Lekensteyn
источник
4
Для информации: это работает с apt-getпростой aptкомандой.
Тор Клингберг
2
Ubuntu 16.0 LTS. Это не работает / ни на что не
влияет
7

Если вы пытаетесь получить пакет из репозитория, куда они упаковали ключи и включают их в репозиторий, а не куда-либо еще, загрузка и установка пакета ключ / набор ключей с помощью 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

## 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 installed

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и избежать всех лишних хлопот пакета.

dragon788
источник
Пришел сюда из-за проблемы с i3 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6решил! Большое спасибо!
Бенедикт Кеппел
6

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

APT{Ignore {"gpg-pubkey"; }};
lebenlechzer
источник
5
Это не работает для меня. Но работает, когда я добавилAPT { Get { AllowUnauthenticated "1"; }; };
php-кодер
Ubuntu 16.0 LTS: не влияет на то, что делает apt-get.
wvxvw
1

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

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

Благодаря PHP-кодировщик «s комментарий .

Totor
источник
0

Я столкнулся с той же проблемой со старым сервером 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.

Обратите внимание, что это совершенно небезопасно.

Gnusam
источник
Если это небезопасно, тогда я предлагаю вам вообще не публиковать.
Юфенюй Вейех Дидер
Безопасный способ сделать это - обновить дистрибутив. В некоторых сложных клиентских случаях у вас нет возможности выполнить обновление. И поскольку весь вопрос начинается с этого заявления об отказе: «Я очень хорошо понимаю, что это опасно», - подумал я, что мой вклад был освоен. Если нет, я могу удалить его.
Гнусам