Forza l'aggiornamento dal repository non firmato


63

Sto usando un repository senza segno in Ubuntu 16.04 da Debian multimedia:

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

Per installare deb-multimedia-keyring, sto correndo:

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

Questo dà un errore:

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.

Risposte:


40

È possibile ignorare alcune importanti garanzie utilizzando la seguente opzione:

--allow-unauthenticated

Dalle pagine man di 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.

Ma sii un po 'cauto nell'usare questa opzione più ampiamente, esistono misure di protezione per proteggere il tuo computer non limitare la tua libertà ...


1
Uso Raspbian stretche ottengo anche con l'opzione E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.che voglio aggiornare da Python 3.5. t 3.6.
Timo,

2
mi disse che "questa opzione non può essere interpretata insieme alle altre" durante l'esecuzionesudo apt-get update --allow-unauthenticated
Xerus,

27
NOTA: Questo non sembra più funzionare in Ubuntu 18.04 a partire da luglio 2018.
Jay Taylor

@JayTaylor: ho appena aperto una nuova macchina virtuale per 18.04 e il comando funziona perfettamente qui. Pastebin qui: pastebin.com/ygLTnP1C
andrew.46

2
Interessante; forse potrebbe esserci qualcos'altro sulla macchina che ho provato da dietro gli errori che ho osservato. In ogni caso, l'aggiunta del [trusted=yes]campo a sources.list ha funzionato. Grazie per la tua diligenza @ andrew.46 :)
Jay Taylor

62

Puoi impostare le opzioni nel tuo sources.list(situato in /etc/apt/sources.list):

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

L'opzione attendibile è ciò che disattiva il controllo GPG. Vedi man 5 sources.listper i dettagli.

Puoi modificare il file all'interno del terminale con vim (o come preferisci) o qualsiasi editor non terminale come gedit.


Come accediamo sources.listal terminale?
fuzzi,

1
Si trova in /etc/apt/sources.list. Puoi modificarlo all'interno del terminale con vim (o qualunque cosa tu preferisca) o qualsiasi editor non terminale come gedit.
Prathu Baronia,

8

Un'altra soluzione generica sarebbe

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

Nota: non ho testato la soluzione con questo repository ma l'ho fatto con il repository Skype e ha funzionato bene.

Un'altra soluzione specifica per il tuo caso è installare le chiavi

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

Come descritto nella passeggiata completa attraverso Here


3

Se stai cercando di ottenere un pacchetto da un repository in cui hanno impacchettato le chiavi e includerle all'interno del repository e in nessun altro luogo, può essere molto fastidioso scaricare e installare il pacchetto chiave / portachiavi usando dpkg, e molto difficile farlo in modo facilmente scrivibile e ripetibile.

Lo script di seguito non è consigliato se è possibile installare le chiavi da un keyserver (come raccomandato in un'altra risposta utilizzando apt-key adv) o se è possibile scaricarle da una fonte attendibile tramite https e installarle utilizzando apt-key (ad esempio wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -), ma se non si ' Non hai NESSUN altro modo, puoi usarlo.

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

Inizialmente l'ho messo insieme perché i3 nel loro repository sur5r lo fa, ma poi ho scoperto che le loro chiavi sono nell'elenco keyserver.ubuntu.com, quindi posso solo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6ed evitare tutte le seccature del pacchetto extra.


Questa risposta sembra incompleta di fronte a Ubuntu 18.04 Lì cerca di infastidirmi dicendo cose cattive come ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. Anche dopo aver scritto le cose / var / lib / apt / lists / * ...
Jürgen Weigert

Questo è semplicemente un problema di replica mirror e non dovrebbe influire sull'autenticazione o sulla firma dei pacchetti nei repository. Poiché il 1804 sta appena uscendo dalla beta, molti mirror stanno cercando di recuperare il ritardo e il servizio di mirroring potrebbe indicare un server che non è ancora completamente sincronizzato.
dragon788,

2

Puoi ottenere PUBLIC_KEY dal keyserver e aggiungerlo in apt-key. Supponendo che il keyserver sia pgpkeys.mit.edu, devi prima digitare:

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

Sostituire la chiave KEY_IN_ERROR con quella nel messaggio di errore, ovvero 5C808C2B65558117.

Inoltre, se sei veramente interessato ad aggiungere un repository senza segno, puoi aggiungere un flag nella voce di repository desiderata nella fonte.list in questo modo:

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

Ciò è molto utile se si desidera ottimizzare le impostazioni di sicurezza per singole voci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.