Принудительное обновление из неподписанного репозитория Ubuntu 16.04

38

Я использую unsigned repo в 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.

Заранее спасибо

    
задан Shan 13.02.2016 в 02:13
источник

5 ответов

25

Вы можете обойти некоторые важные меры защиты , используя следующую опцию:

--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.

Но будьте осторожны при использовании этой опции более широко, существуют гарантии, чтобы защитить ваш компьютер, а не limit вашу свободу ...

    
ответ дан andrew.46 13.02.2016 в 02:29
источник
14

Вы можете установить параметры в sources.list :

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

Доверенная опция - это то, что отключает проверку GPG. Подробнее см. В man 5 sources.list .

    
ответ дан Prathu Baronia 29.06.2018 в 22:17
6

Другим общим решением было бы

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

Как описано в полном прохождении через здесь

    
ответ дан fady mohamed osman 06.04.2017 в 21:45
3

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

Приведенный ниже сценарий не рекомендуется, если вы можете установить ключи с сервера ключей (как рекомендовано в другом ответе, используя apt-key adv ), или если вы можете загрузить их из надежного источника через https и установить с помощью apt-key (например, 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 и избегать всех дополнительных проблем с пакетом.

    
ответ дан dragon788 01.09.2017 в 22:10
2

Вы можете получить PUBLIC_KEY с сервера ключей и добавить его в apt-key. Предполагая, что сервер ключей 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.

Кроме того, если вы действительно заинтересованы в добавлении неподписанного репозитория, вы можете добавить флаг в желаемую запись репозитория в sources.list следующим образом:

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

Это действительно полезно, если вы хотите точно настроить свои параметры безопасности для отдельных записей.     

ответ дан leonidas 04.05.2018 в 08:05