Tous les serveurs de clés que je visite sont en train de s'arrêter. J'ai besoin d'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 faire croire à apt que la signature a été acceptée ?
Réponses
Trop de publicités?Passez le --allow-unauthenticated
option pour apt-get
comme dans :
sudo apt-get --allow-unauthenticated upgrade
De la page de manuel de apt-get
:
--allow-unauthenticated
Ignorez les paquets qui ne peuvent pas être authentifiés et n'envoyez pas de message à ce sujet. 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 à l'adresse suivante /etc/apt/apt.conf.d/
dir. Le nom du fichier peut être 99myown
et il peut contenir cette ligne :
APT::Get::AllowUnauthenticated "true";
De cette façon, vous n'avez pas besoin d'utiliser l'option chaque fois que vous voulez installer un logiciel. Remarque : je ne recommande pas de définir cette option par défaut, car elle contourne les contrôles de signature qui pourraient permettre à un adversaire de compromettre votre ordinateur.
Si vous essayez d'obtenir un paquetage à partir d'un dépôt où les clés sont empaquetées et incluses dans le dépôt et nulle part ailleurs, il peut être très ennuyeux de télécharger et d'installer le paquetage de la clé/du porte-clés en utilisant dpkg, et 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 depuis un serveur de clés ou les télécharger depuis une source de confiance via https, mais si vous n'avez aucun 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
A l'origine, j'ai mis cela en place parce que i3 dans leur repo sur5r fait cela, mais ensuite j'ai découvert que leurs clés sont dans la liste de keyserver.ubuntu.com, donc je peux juste sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
et évitez tous les problèmes liés aux paquets supplémentaires.
J'ai rencontré le même problème avec un vieux serveur debian. Je n'arrivais 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 était d'ajouter ce :
Acquire::Check-Valid-Until false;
à /etc/apt/apt.conf (le créer s'il n'existe pas). Après cela, l'erreur est devenue un simple avertissement.
Je pense que ça pourrait fonctionner sur Ubuntu aussi.
Veuillez noter qu'elle est totalement dangereuse.
Créer /etc/apt/apt.conf.d/99allow_unauth
avec ce contenu :
APT { Get { AllowUnauthenticated "1"; }; };
Merci à php-coder 's commentaire .