Comment puis-je contourner / ignorer les contrôles de signature gpg d'apt?

47

Tous les serveurs de clés que je visite sont arrivés à expiration. Je dois installer des paquets sans vérifier les signatures des clés publiques. Existe-t-il un moyen de contourner toutes les vérifications de signature / d'ignorer toutes les erreurs de signature ou de tromper aptes en leur faisant croire que la signature est passée?

Je sais très bien que c'est dangereux de le faire

ashleysmithgpu
la source
1
Normalement, vous installez la clé localement en même temps que vous ajoutez un référentiel, alors pourquoi devez-vous accéder aux serveurs de clés?
Janvier

Réponses:

68

Passer l' --allow-unauthenticatedoption à apt-getcomme dans:

sudo apt-get --allow-unauthenticated upgrade

De la page de manuel de apt-get:

--allow-unauthenticated
Ignore si les paquetages ne peuvent pas être authentifiés et ne le leur demandent pas. Ceci est utile pour des outils comme pbuilder. Élément de configuration: APT :: Get :: AllowUnauthenticated.

Vous pouvez rendre ce paramètre permanent en utilisant votre propre fichier de configuration dans /etc/apt/apt.conf.d/dir. Le nom de fichier peut être 99myownet il peut contenir cette ligne:

APT::Get::AllowUnauthenticated "true";

De cette manière, vous n'avez pas besoin d'utiliser cette option à chaque fois que vous souhaitez installer un logiciel. Remarque: je ne recommande pas de définir cette option par défaut, elle contourne les contrôles de signature qui pourraient permettre à un adversaire de compromettre votre ordinateur.

Lekensteyn
la source
4
Pour info: Cela fonctionne avec apt-getmais pas avec la aptcommande plain .
Tor Klingberg
2
Ubuntu 16.0 LTS. Cela ne fonctionne pas / n'a aucun effet sur rien
wvxvw
7

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, vous pouvez télécharger et installer le package clé / trousseau à l'aide de dpkg, et il est très difficile de le 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 ou les télécharger à partir d'une source fiable via https, mais si vous n'avez pas d'autre moyen, vous pouvez l'utiliser.

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 par la suite 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 tous les tracas liés aux paquets.

dragon788
la source
Je suis venu ici à cause du problème i3 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6résolu! Merci beaucoup!
Benedikt Köppel le
6

Peut-être que vous pouvez essayer de créer le fichier /etc/apt/apt.conf (il sera lu si vous le créez) et insérer ce code:

APT{Ignore {"gpg-pubkey"; }};
lebenlechzer
la source
5
Ca ne marche pas pour moi Mais ça marche quand j'ai ajoutéAPT { Get { AllowUnauthenticated "1"; }; };
php-coder
ubuntu 16.0 LTS: n’a aucun effet sur ce que fait apt-get.
wvxvw le
1

Créer /etc/apt/apt.conf.d/99allow_unauthavec ce contenu:

APT { Get { AllowUnauthenticated "1"; }; };

Merci à php-codeur de commentaire .

Totor
la source
0

J'ai rencontré le même problème avec un ancien serveur Debian. Je ne pouvais même pas faire un

apt-get update

ce qui m'a donné l'erreur suivante:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

Enfin, la solution consistait à ajouter ceci:

Acquire::Check-Valid-Until false;

dans /etc/apt/apt.conf (créez-le s'il n'existe pas). Après cela, l'erreur est devenue un simple avertissement.

Je suppose que cela pourrait fonctionner sur Ubuntu aussi.

S'il vous plaît noter que c'est totalement dangereux.

Gnusam
la source
Si c'est aussi dangereux, alors je vous suggère de ne pas le poster du tout.
Yufenyuy Veyeh Dider
Le moyen le plus sûr de procéder consiste à mettre à niveau la distribution. Dans certains cas complexes, vous n'avez aucun moyen de procéder à une mise à niveau. Et puisque toute la question est entamée avec cet avertissement: «Je sais très bien que c'est dangereux de le faire», j'ai pensé que ma contribution était appropriée. Sinon, je peux l'enlever.
Gnusam le