Forcer la mise à jour à partir d'un référentiel non signé

63

J'utilise un référentiel non signé dans Ubuntu 16.04 de Debian multimedia:

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

Pour installer deb-multimedia-keyring, je lance:

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

Cela donne une erreur:

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
la source

Réponses:

40

Vous pouvez contourner certaines mesures de protection importantes en utilisant l'option suivante:

--allow-unauthenticated

À partir des pages de manuel d'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.

Mais soyez un peu prudent pour utiliser cette option plus largement, les sauvegardes sont en place pour protéger votre ordinateur et ne limitent pas votre liberté ...

andrew.46
la source
1
J'utilise Raspbian stretchet je reçois même l'option que E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.je veux mettre à jour à partir de python 3.5. t 3.6.
Timo
2
m'a dit que "cette option ne peut pas être interprétée avec les autres options" lors de l'exécutionsudo apt-get update --allow-unauthenticated
Xerus
27
NOTE: Cela ne semble plus fonctionner dans Ubuntu 18.04 à compter de juillet 2018.
Jay Taylor
@JayTaylor: Je viens d'ouvrir une nouvelle machine virtuelle pour le 18.04 et la commande fonctionne parfaitement bien ici. Pastebin ici: pastebin.com/ygLTnP1C
andrew.46
2
Intéressant; peut-être y a-t-il autre chose de différent sur la machine que j'ai essayée derrière les erreurs que j'ai observées. Dans tous les cas, l'ajout du [trusted=yes]champ à sources.list a fonctionné. Merci pour votre diligence @ andrew.46 :)
Jay Taylor
62

Vous pouvez définir des options dans votre sources.list(situé à /etc/apt/sources.list):

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

L'option de confiance est ce qui désactive la vérification de GPG. Voir man 5 sources.listpour plus de détails.

Vous pouvez soit éditer le fichier dans le terminal avec vim (ou ce que vous préférez) ou n’importe quel éditeur non terminal comme gedit.

Prathu Baronia
la source
Comment pouvons-nous accéder à sources.listpartir du terminal?
fuzzi
1
Il est situé dans /etc/apt/sources.list. Vous pouvez soit l'éditer dans le terminal avec vim (ou ce que vous préférez) ou tout éditeur non-terminal comme gedit.
Prathu Baronia
8

Une autre solution générique serait

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

Remarque: je n'ai pas testé la solution avec ce référentiel mais je l'ai fait avec un référentiel Skype et cela a fonctionné correctement.

Une autre solution spécifique à votre cas consiste à installer les clés

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

Comme décrit dans la promenade complète ici

fady mohamed osman
la source
3

Si vous essayez d'obtenir un package à partir d'un référentiel dans lequel les clés sont empaquetées et incluses dans le référentiel, il peut être très ennuyeux de télécharger et d'installer le package clé / trousseau à l'aide de dpkg, et très difficile à faire. d'une manière facilement scriptable et répétable.

Le script ci-dessous n'est pas recommandé si vous pouvez installer les clés à partir d'un serveur de clés (comme recommandé dans une autre réponse en utilisant apt-key adv) ou si vous pouvez les télécharger à partir d'une source approuvée via https et l'installer à l'aide d'apt-key (par exemple wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -), mais si vous ne le faites pas. t avoir AUCUNE autre manière, vous pouvez utiliser cela.

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

J’ai initialement mis cela en place parce que i3 dans leur repo sur5r le fait, mais j’ai découvert que leurs clés se trouvaient dans la liste keyserver.ubuntu.com, ce qui me permettait d’ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6éviter au maximum les tracas liés aux paquets.

dragon788
la source
Cette réponse semble incomplète face à Ubuntu. 18.04 Là, il essaie de m'agacer en disant des choses désagréables, comme ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. Même après la lecture du / var / lib / apt / listes / * choses ...
Jürgen Weigert
Il s’agit simplement d’un problème de réplication miroir et ne devrait pas affecter l’authentification ou la signature des packages dans les référentiels. Étant donné que 1804 vient juste de sortir de la version bêta, de nombreux miroirs tentent de rattraper son retard et le service de mise en miroir peut vous diriger vers un serveur qui n'est pas encore complètement synchronisé.
dragon788
2

Vous pouvez obtenir PUBLIC_KEY à partir du serveur de clés et l'ajouter à apt-key. En supposant que le serveur de clés est pgpkeys.mit.edu, vous devez d'abord taper:

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

Remplacez la clé KEY_IN_ERROR par celle de votre message d'erreur, à savoir 5C808C2B65558117.

De plus, si vous êtes vraiment intéressé par l'ajout d'un référentiel non signé, vous pouvez ajouter l'indicateur a dans l'entrée de référentiel souhaitée dans le fichier sources.list comme ceci:

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

Ceci est très utile si vous souhaitez affiner vos paramètres de sécurité pour des entrées individuelles.

Leonidas
la source