Come posso risolvere l'errore GPG "NO_PUBKEY"?

307

Ho aggiunto alcuni repository extra con il programma Sorgenti software. Ma quando ricarico il database del pacchetto, ottengo un errore simile al seguente:

% Bl0ck_qu0te%

So che posso aggiustarlo usando apt-key in un terminale, secondo la documentazione ufficiale di Ubuntu. Ma mi sarebbe piaciuto farlo graficamente. C'è un modo per farlo senza usare un terminale?

    
posta Agmenor 13.11.2010 - 21:27
fonte

11 risposte

193

Di gran lunga il modo più semplice per gestirlo ora è con Y-PPA-Manager (che ora integra lo script launchpad-getkeys con un'interfaccia grafica).

  1. Per installarlo, aggiungi prima il repository webupd8 per questo programma:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Aggiorna il tuo elenco di software e installa Y-PPA-Manager:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Esegui y-ppa-manager (ad esempio digita y-ppa-manager quindi premi il tasto invio).

  4. Quando viene visualizzata la finestra principale di y-ppa-manager, fai clic su "Avanzate".

  5. Dall'elenco delle attività avanzate, seleziona "Prova a importare tutte le chiavi GPG mancanti" e fai clic su OK.

    Il gioco è fatto! Come dice la finestra di avviso all'avvio dell'operazione, potrebbe essere necessario un po 'di tempo (circa 2 minuti per me) a seconda di quanti PPA hai e della velocità della tua connessione.

risposta data monotasker 04.12.2013 - 16:52
fonte
449

Esegui i seguenti comandi nel terminale

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

dove <PUBKEY> è la chiave pubblica mancante per il repository, ad es. % Co_de%.

Quindi aggiorna

sudo apt-get update

METODO ALTERNATIVO:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

Nota che quando importi una chiave come questa usando 8BAF9A6F stai dicendo al sistema che ti fidi della chiave che stai importando per firmare il software che il tuo sistema utilizzerà. Non farlo se non sei sicuro che la chiave sia davvero la chiave del distributore di pacchetti.

    
risposta data karthick87 28.11.2010 - 19:49
fonte
40

Succede quando non hai una chiave pubblica adatta per un repository.

Per risolvere questo problema usa questo comando:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

che recupera la chiave dal server delle chiavi di ubuntu. E poi questo:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

che aggiunge la chiave alle chiavi attendibili di apt.

La soluzione può essere trovata qui & amp; qui & amp; qui .

    
risposta data Pedram 28.03.2011 - 00:31
fonte
33

Devi ottenere e importare la chiave.

Per ottenere la chiave da un PPA, visita la pagina Launchpad del PPA. Su ogni pagina PPA su Launchpad troverai questo link (2), dopo aver cliccato su "Dettagli tecnici su questo PPA" (1):

SeguiloefaiclicsullinkIDchiave(3):

Salva la pagina, questo è il tuo file chiave.

Ora è il momento di importarlo:

  • % Co_de%,
  • % Co_de%,
  • Inserisci la tua password,
  • Vai alla scheda Applications > Software Center e fai clic su Edit > Software sources... , infine
  • Seleziona il file chiave salvato e fai clic su Authentication .

Questo è tutto.

    
risposta data htorque 13.11.2010 - 22:04
fonte
11

apt può gestire solo 40 chiavi in /etc/apt/trusted.gpg.d. 41 tasti e otterrai l'errore GPG "nessuna chiave pubblica trovata" anche se passi a tutti i passaggi per aggiungere la / e chiave / i mancante / i.

Controlla se ci sono chiavi inutilizzate in questo file da ppa (s) che non usi più. Se sono tutti in uso, prendi in considerazione la rimozione di alcuni ppa (s) insieme ai corrispondenti file di chiavi in /etc/apt/trusted.gpg.d

Inoltre, utilizzando

sudo apt-key adv

È considerato un rischio per la sicurezza e non è raccomandato poiché " mina l'intero concetto di sicurezza in quanto non è un modo sicuro di ricevere le chiavi per vari motivi (come: hkp è un i protocolli in chiaro, i keyids brevi e anche lunghi possono essere falsificati, ...) ". link

Credo che il modo corretto per aggiungere le chiavi mancanti (ad esempio 1ABC2D34EF56GH78) sia

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
    
risposta data mchid 08.08.2014 - 00:33
fonte
8

C'è un piccolo script contenuto nel PPA di WebUpd8 che collegherò come un singolo download .deb in modo da non dover aggiungere l'intero PPA, che importa automaticamente tutte le chiavi GPG mancanti.

Scarica e installa Launchpad-getkeys (ignora il ~ natty nella sua versione, funziona con tutte le versioni di Ubuntu da Karmic fino ad Oneiric). Una volta installato, apri un terminale e digita:

sudo launchpad-getkeys

Se sei dietro un proxy, le cose sono un po 'più complicate, quindi vedi questo per maggiori informazioni

    
risposta data Alin Andrei 05.06.2011 - 22:15
fonte
4

Ho affrontato lo stesso problema durante l'installazione di Heroku. Il link qui sotto ha risolto il mio problema -

link

Dopo aver risolto il problema di NO_PUBKEY , il problema di seguito è rimasto

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

Per risolverlo ho eseguito i seguenti comandi nel terminale:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Source - Link per risolverlo

    
risposta data dennyac 30.01.2013 - 18:12
fonte
4

Assicurati di aver installato apt-transport-https :

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Aggiungi repository:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Installa Skype per Linux:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Fonte: link

    
risposta data Eduardo Cuomo 27.05.2017 - 22:00
fonte
3

Più in generale, il seguente metodo dovrebbe funzionare per ogni repository. Prima di tutto cerca, con l'eventuale aiuto di un motore di ricerca, un testo sul sito web del fornitore del programma simile al seguente:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Un testo di questo tipo è visualizzato ad esempio sul link . Copia il passaggio, incollalo in un file vuoto che hai creato sul desktop. Questo risulta nel file chiave.

Quindi continua con l'importazione della chiave:

  • Applicazioni & gt; Centro Sofware
  • Modifica & gt; Sorgenti di Sofware ..., inserisci la password
  • Scheda Autenticazione, fai clic su "Importa file chiave ..."
  • Seleziona il file della chiave salvata e fai clic su "OK".

Ora puoi rimuovere il file chiave creato in precedenza.

    
risposta data Agmenor 13.11.2010 - 22:43
fonte
3

Bene! Finalmente ho trovato la via!

Ho provato tutti i metodi per correggere errore GPG NO_PUBKEY e nulla funziona per me.

Ho cancellato l'intero contenuto della cartella /etc/apt/trusted.gpg.d

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

E io uso il metodo Y-PPA-Manager perché sono troppo pigro per creare manualmente tutti i pubkey (troppi): link

esegui sudo apt-get update di nuovo e finalmente tutto funziona alla grande ora! Tanks!

Fonte basata: post # 17 su link

    
risposta data NeurOSick 08.04.2015 - 15:36
fonte
1

Ho avuto lo stesso problema con il client di aggiornamento di DynDNS.

Si è scoperto che erano solo chiavi scadute.

La reinstallazione del software (scaricando un nuovo .deb dal sito Web, quindi utilizzando Software Center per reinstallare) ha risolto il problema.

Messaggio di errore per riferimento:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
    
risposta data Cranky 08.01.2015 - 17:53
fonte

Leggi altre domande sui tag