Усі ключові сервери, які я відвідую, закінчуються. Мені потрібно встановити пакети, не перевіряючи підписи відкритих ключів. Чи є спосіб обійти всі перевірки підпису / проігнорувати всі помилки підпису або нерозумно сприймати думки про підпис?
Усі ключові сервери, які я відвідую, закінчуються. Мені потрібно встановити пакети, не перевіряючи підписи відкритих ключів. Чи є спосіб обійти всі перевірки підпису / проігнорувати всі помилки підпису або нерозумно сприймати думки про підпис?
Відповіді:
Передайте --allow-unauthenticated
параметр apt-get
як у:
sudo apt-get --allow-unauthenticated upgrade
З сторінки керівництва від apt-get
:
- Позволити-неаутентифіковано
Ігнорувати, якщо пакети неможливо пройти автентифікацію та не вимагати про це. Це корисно для таких інструментів, як pbuilder. Елемент конфігурації: APT :: Get :: AllowUnauthentication.
Ви можете зробити це налаштування постійним, скориставшись власним конфігураційним файлом у /etc/apt/apt.conf.d/
dir. Ім'я файлу може бути, 99myown
і воно може містити цей рядок:
APT::Get::AllowUnauthenticated "true";
Таким чином, вам не потрібно використовувати цю опцію щоразу, коли ви хочете встановити програмне забезпечення. Примітка. Я не рекомендую встановлювати цю опцію за замовчуванням, вона обминає перевірки підписів, які можуть дозволити противнику компрометувати ваш комп’ютер.
apt-get
але не з простою apt
командою.
Якщо ви намагаєтесь отримати пакет із сховища, де вони запакували ключі та включили їх у сховище, і ніде більше, це може бути дуже прикро завантажувати та встановлювати пакет ключів / ключів за допомогою 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 repo це робить, але потім я виявив, що їх ключі знаходяться у списку keyserver.ubuntu.com, тож я можу просто sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
уникати зайвих проблем із пакетом.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
вирішив! Дуже дякую!
Можливо, ви можете спробувати створити файл /etc/apt/apt.conf (він буде прочитаний, якщо ви його створили) та вставте цей код:
APT{Ignore {"gpg-pubkey"; }};
APT { Get { AllowUnauthenticated "1"; }; };
Я зіткнувся з тією ж проблемою зі старим сервером 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.
Зверніть увагу, що це абсолютно небезпечно.