Все серверы ключей, которые я посещаю, имеют тайм-аут. Мне нужно установить пакеты без проверки подписей открытых ключей. Есть ли способ обойти все проверки подписи / игнорировать все ошибки подписи или дурак может думать, что подпись прошла?
Передайте --allow-unauthenticated
опция к apt-get
как в:
sudo apt-get --allow-unauthenticated upgrade
Из tha страницы руководства apt-get
:
- позвольте - неаутентифицируемый
Проигнорируйте, если пакеты не могут аутентифицироваться и не запрашивают об этом. Это полезно для инструментов как pbuilder. Элемент конфигурации: APT:: Доберитесь:: AllowUnauthenticated.
Можно установить эту настройку, постоянную при помощи собственного файла конфигурации в /etc/apt/apt.conf.d/
dir. Имя файла может быть 99myown
и это может содержать эту строку:
APT::Get::AllowUnauthenticated "true";
Таким образом Вы не должны использовать опцию каждый раз, когда Вы хотите установить программное обеспечение.Примечание: Я не рекомендую установить эту опцию по умолчанию, она обходит проверки подписи, которые могли позволить противнику захватывать Ваш компьютер.
Создать /etc/apt/apt.conf.d/99allow_unauth
с таким содержанием:
APT { Get { AllowUnauthenticated "1"; }; };
Благодаря комментарию php-кодера .
Может быть, вы можете попытаться создать файл /etc/apt/apt.conf (он будет прочитан, если вы его создадите) и вставить этот код:
APT{Ignore {"gpg-pubkey"; }};
Если вы пытаетесь получить пакет из репозитория, в который они упаковали ключи, и включить их в репозиторий, а не куда-либо еще, загрузка и установка пакета ключ / набор ключей с помощью 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
и избежать всех дополнительных пакетов. неприятностей.
Я работал в той же проблеме со старым 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 (создают его, если это не существует). После этого ошибка стала простым предупреждением.
Я Предполагаю, что это могло бы работать над человечностью также.
Обратите внимание на то, что это полностью небезопасно.