Come posso bypassare / ignorare i controlli della firma gpg di apt?


47

Tutti i key server che visito stanno scadendo. Devo installare i pacchetti senza controllare le firme delle chiavi pubbliche. Esiste un modo per aggirare tutti i controlli della firma / ignorare tutti gli errori di firma o stupido nel pensare che la firma sia passata?

Sono ben consapevole che è pericoloso farlo


1
Normalmente si installa la chiave localmente contemporaneamente all'aggiunta di un repository, quindi perché è necessario accedere ai key server?
JanC

Risposte:


68

Passa l' --allow-unauthenticatedopzione a apt-getcome in:

sudo apt-get --allow-unauthenticated upgrade

Dalla pagina di manuale di apt-get:

--allow-non autenticato
Ignora se i pacchetti non possono essere autenticati e non richiedono conferma. Questo è utile per strumenti come pbuilder. Elemento di configurazione: APT :: Get :: AllowUnauthenticated.

È possibile rendere permanente questa impostazione utilizzando il proprio file di configurazione in /etc/apt/apt.conf.d/dir. Il nome file può essere 99myowne può contenere questa riga:

APT::Get::AllowUnauthenticated "true";

In questo modo, non è necessario utilizzare l'opzione ogni volta che si desidera installare il software. Nota: sconsiglio di impostare questa opzione per impostazione predefinita, ignora i controlli delle firme che potrebbero consentire a un avversario di compromettere il tuo computer.


4
Per informazioni: funziona con apt-getma non con il semplice aptcomando.
Tor Klingberg,

2
Ubuntu 16.0 LTS. Questo non funziona / non ha alcun effetto su nulla
wvxvw

7

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

Lo script seguente non è consigliato se è possibile installare le chiavi da un keyserver o scaricarle da una fonte attendibile tramite https, ma se non si dispone di NESSUN altro modo, è possibile utilizzare questo.

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


Sono venuto qui a causa del problema i3 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6risolto! Molte grazie!
Benedikt Köppel,

6

Forse puoi provare a creare il file /etc/apt/apt.conf (verrà letto se lo crei) e inserire questo codice:

APT{Ignore {"gpg-pubkey"; }};

5
Non funziona per me. Ma funziona quando ho aggiuntoAPT { Get { AllowUnauthenticated "1"; }; };
php-coder,

ubuntu 16.0 LTS: non ha alcun effetto su qualunque cosa faccia apt-get.
wvxvw,

1

Crea /etc/apt/apt.conf.d/99allow_unauthcon questo contenuto:

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

Grazie a PHP-coder 's commento .


0

Ho riscontrato lo stesso problema con un vecchio server debian. Non ho potuto fare un evento

apt-get update

che mi ha dato il seguente errore:

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

Alla fine la soluzione era aggiungere questo:

Acquire::Check-Valid-Until false;

su /etc/apt/apt.conf (crearlo se non esiste). Successivamente, l'errore è diventato un semplice avvertimento.

Immagino che potrebbe funzionare anche su Ubuntu.

Si noti che non è assolutamente sicuro.


Se non è sicuro, ti suggerisco di non pubblicarlo affatto.
Yufenyuy Veyeh Dider,

Il modo sicuro per farlo è aggiornare la distribuzione. In alcuni casi complicati dei clienti, non è possibile eseguire l'aggiornamento. E poiché l'intera domanda è iniziata con questo disclaimer: "Sono ben consapevole che è pericoloso farlo", ho pensato che il mio contributo fosse appropriato. In caso contrario, posso rimuoverlo.
Gnusam,
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.