Примусове оновлення з непідписаного сховища


63

Я використовую неподписаний репо в Ubuntu 16.04 з мультимедіа Debian:

deb http://www.deb-multimedia.org jessie main

Для встановлення deb-multimedia-keyringя запускаю:

apt-get update && apt-get install deb-multimedia-keyring -y

Це дає помилку:

W: GPG error: http://www.deb-multimedia.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
E: The repository 'http://www.deb-multimedia.org jessie InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Відповіді:


40

Можна обійти деякі важливі гарантії , скориставшись наступною опцією:

--allow-unauthenticated

На сторінках man для apt-get:

--allow-unauthenticated
    Ignore if packages can't be authenticated and don't prompt about
    it. This can be useful while working with local repositories, but
    is a huge security risk if data authenticity isn't ensured in
    another way by the user itself. The usage of the Trusted option for
    sources.list(5) entries should usually be preferred over this
    global override. Configuration Item:
    APT::Get::AllowUnauthenticated.

Але будьте обережнішими щодо ширшого використання цієї опції, є гарантії, щоб захистити комп’ютер і не обмежити вашу свободу ...


1
Я використовую Raspbian stretchі отримую рівномірність з можливістю E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.оновлення з python 3.5. t 3.6.
Тимо

2
сказав мені, що "цей варіант не можна інтерпретувати разом з іншими параметрами" під час виконанняsudo apt-get update --allow-unauthenticated
Xerus

26
ПРИМІТКА. Це, здається, більше не працює в Ubuntu 18.04 станом на липень 2018 року.
Джей Тейлор

@JayTaylor: Я щойно відкрив свіжу Віртуальну машину на 18.04, і команда функціонує тут чудово. Вставте тут: pastebin.com/ygLTnP1C
andrew.46

2
Цікаво; можливо, на машині може бути щось інше, я спробував це з-за помилок, які я спостерігав. У будь-якому випадку, додавання [trusted=yes]поля до source.list справді спрацювало. Дякую за старання @ andrew.46 :)
Джей Тейлор

61

Ви можете встановити параметри у своєму sources.list(розташованому за адресою /etc/apt/sources.list):

deb [trusted=yes] http://www.deb-multimedia.org jessie main

Довірений варіант - це те, що вимикає перевірку GPG. Детальніше man 5 sources.listдивіться.

Ви можете редагувати файл в терміналі за допомогою vim (або будь-якого іншого), або будь-якого нетермінального редактора, наприклад, gedit.


Як ми можемо отримати доступ sources.listдо терміналу?
fuzzi

1
Він знаходиться в с /etc/apt/sources.list. Ви можете редагувати його в терміналі за допомогою vim (або будь-якого іншого), або будь-якого нетермінального редактора, наприклад, gedit.
Прату Баронія

8

Ще одне загальне рішення було б

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5C808C2B65558117

Примітка: Я не перевіряв рішення з цим сховищем, але я це робив із сховищем Skype, і він працював чудово.

Ще одне специфічне для вашого випадку рішення - встановити ключі

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2012.05.05_all.deb -O deb-multimedia-keyring.deb
sudo dpkg -i multimedia-keyring_all.deb

Як описано в повній прогулянці Тут


3

Якщо ви намагаєтесь отримати пакет із сховища, де вони запакували ключі, і включити їх у сховище, і ніде більше, це може бути дуже прикро завантажити і встановити пакет ключів / ключів за допомогою dpkg, і це дуже важко зробити у легко написаному та повторюваному способі.

Наведений нижче сценарій не рекомендується, якщо ви можете встановити ключі з сервера за допомогою клавіш (як це рекомендовано в іншій відповіді за допомогою apt-key adv) або якщо ви можете завантажити їх з надійного джерела через https та встановити за допомогою apt-ключа (наприклад wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -), але якщо ви цього не зробите ' у будь-якого іншого способу, ви можете використовувати це.

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уникати зайвих проблем із пакетом.


Ця відповідь здається неповною, коли стикаємося з Ubuntu 18.04. Там вона намагається роздратувати мене, кажучи неприємні речі, як, ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. навіть, після того, як виправляєте / var / lib / apt / list / * речі ...
Jürgen Weigert,

Це просто проблема дзеркальної реплікації і не повинна впливати на автентифікацію або підписання пакетів у сховищах. Оскільки 1804 рік виходить з бета-версії, багато дзеркал намагаються наздогнати, і дзеркальна послуга може вказати на сервер, який ще не повністю синхронізований.
dragon788

2

Ви можете отримати PUBLIC_KEY з сервера приладів і додати його до клавіші apt. Припустимо, що сервер клавіш є pgpkeys.mit.edu, спочатку потрібно ввести:

gpg --keyserver pgpkeys.mit.edu --recv-key KEY_IN_ERROR
gpg -a --export KEY_IN_ERROR | sudo apt-key add -

Замініть ключ KEY_IN_ERROR на той, який у вашому повідомленні про помилку, тобто 5C808C2B65558117.

Крім того, якщо ви дійсно зацікавлені в додаванні непідписаного сховища, ви можете додати прапор до потрібної записи репозиторію в source.list таким чином:

deb [allow-insecure=yes] http://www.deb-multimedia.org jessie main

Це дуже корисно, якщо ви хочете точно налаштувати свої налаштування безпеки для окремих записів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.