Come riparare le chiavi GPG mancanti?


154

Ho appena installato Ubuntu 12.04 e ho aggiunto alcuni repository, e quando l'ho fatto apt-get update, mi mancava la chiave gpg.

Il seguente comando sembra non funzionare per me:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

Come risolvere questo problema?


1
Sarebbe positivo se le risposte a questa domanda includessero innanzitutto perché questo errore si sta verificando e cosa fare per evitarlo in futuro.
Flimm,

Ho risolto il mio problema usando Y-ppa-manager. Grazie ad Ashu per la soluzione!

1
Soluzione dettagliata con schermate opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur

Risposte:


222

Mi è piaciuta questa soluzione, scaricare nuovamente le chiavi mancanti dal key server Ubuntu.

Per Ubuntu

Nel mio caso

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Ecco il comando per aggiungere la chiave mancante menzionata nel messaggio di errore.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Quindi prendo la chiave mancante 2EA8F35793D8809Ae chiedo a keyserver.ubuntu.com di aggiungerla all'elenco delle chiavi che ho in apt.

Per Linux Mint
Il tuo key server è leggermente diversokeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Server chiave alternativi da provare
keyserver.ubuntu.com


1
askubuntu.com/a/136735/10998 non ha funzionato per me.
nelaaro,

5
Ci sono implicazioni di sicurezza nel fare questo? Sto praticamente scaricando una chiave pubblica su http, giusto?
Ajedi32,

1
@iamcreasy, al fine di dimostrare alle installazioni di Ubuntu che i pacchetti che stai installando sono sicuri e privi di malware ogni pacchetto è firmato dal server di chiavi ubuntu. Quindi il tuo programma di installazione verifica se il pacchetto che stai installando proviene da una fonte attendibile e verificata. Non ho trovato alcuna documentazione davvero valida al riguardo, ma questo potrebbe aiutare [gpg doc] ( help.ubuntu.com/community/… )
nelaaro,

1
Ho creato una funzione per aggiungere i tasti necessari adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}E per rimuovere i tasti duplicati o problematici sono grep -ril "pattern" /etc/apt | sudo xargs rm -f
abituato

1
Mi raccomando --keyserver ha.pool.sks-keyservers.net. È un pool ad alta disponibilità di server chiave, che aumenta notevolmente le possibilità di ottenere la chiave desiderata.
Robin piace l'uccello

21

C'è un software chiamato in quanto Y PPA managerpuò aiutare a correggere gli errori delle chiavi GPG.
Y Manager PPA

Installare -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Una volta installato, avviarlo, quindi vai a advancee seleziona "importa tutte le chiavi GPG mancanti"


2
Devi aggiungere sudo a questo comando! sudo apt-get...
Fih,

Questo ha funzionato anche per me e sono rimasto molto colpito dall'interfaccia semplice e intuitiva di Y PPA Manager, è stata una bella scoperta, grazie Ashu.
CoalaWeb,

Ho fatto quello che dici ma non è successo niente. Voglio dire che non riesco a trovare l'app da nessuna parte nel menu.
Cristiana Nicolae,

@CristianaNicolae Una volta installato, è possibile trovare Y PPA Manager in Applicazioni> Strumenti di sistema.
Ashu,

Scusa Ashu, ho controllato e ricontrollato. Non riesco ancora a vederlo lì. Sembra che sia installato da qualche parte nel sistema, ma per alcuni motivi, non viene visualizzato in nessun punto del menu.
Cristiana Nicolae,

14

Il download automatico tramite apt-key adv --recv-keyspotrebbe non funzionare dietro un firewall.

In questo caso, aprire la pagina Web di Ubuntu Key Server nel browser Web e cercare la stringa 0x<hexadecimal code of your missing key>.

Apri il link nella sezione pub . Salvare il contenuto della chiave (da -----BEGIN PGP PUBLIC KEY BLOCK-----a -----END PGP PUBLIC KEY BLOCK-----) come file.

Quindi eseguire:

sudo apt-key add <file-with-saved-key>

Fonte: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html


12

prima inserisci il seguente comando nel terminale

 sudo rm /var/lib/apt/lists/* -vf

quindi aggiornare il sistema immettendo il seguente comando nel terminale

 sudo apt-get update && sudo apt-get upgrade

dopo questo non dovrebbero esserci errori e tutto dovrebbe funzionare bene.


grazie per la risposta. Il sollution per il mio problema era preety molto più semplice: digitare sudo suprima di digitare il mio comando sopra
Fih

Sebbene ciò ti abbia aiutato, non sudo suè in alcun modo l'approccio corretto, in questo caso sudo -savrebbe fatto ciò di cui avevi bisogno.
Guntbert,

Penso che volevi dire sudo rm /var/lib/apt/lists/* -rf(opzione "r" invece di "v")
Oliboy50

9
Usando entrambi sudoed rmè pericoloso. Usando entrambi rmed *è pericoloso. Usa i tre con lo stesso comando e uno squalo ti morderà, o i tuoi file.
JB.

Questo non funziona per me.
WiSaGaN,

9

Per Ubuntu 12.04 Preciso: soluzione permanente

a questo messaggio di errore che si verifica dopo aver aggiunto un nuovo repository e aver aggiornato l'elenco dei repository. Ciò è dovuto a un server il cui indirizzo non è più valido. Quindi basta cambiare l'indirizzo in uno buono.

  1. Apri il file ~/.gnupg/gpg.confcon un editor di testo.

    Nel terminal: gedit ~/.gnupg/gpg.conf

  2. quindi, in questo file, trova la seguente linea in grassetto (116a linea) (che dovrebbe essere predefinita come segue):

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

  3. quindi aggiungi la seguente linea in grassetto, per dare finalmente il seguente risultato:

    (aggiungi # alla seconda riga come segue per commentare il vecchio indirizzo)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: pgp-public-keys@keys.nl.pgp.net # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Salvare il file e provare ad aggiornare di nuovo:

    Nel terminal: sudo apt-get update


7

Basato sulla risposta nelaar:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

Lo script scarica tutti gli errori in un file temporaneo e quindi li attraversa, importando le chiavi mancanti.


6

Il modo più semplice è con Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Apri Y PPA Manager da Dash

inserisci qui la descrizione dell'immagine

Inserisci la tua password amministratore

inserisci qui la descrizione dell'immagine

Fare doppio clic su Opzione avanzata

inserisci qui la descrizione dell'immagine

Fai clic su Prova per importare tutte le chiavi GPG mancanti

inserisci qui la descrizione dell'immagine

Fai clic su OK per risolverlo


4

Immettere innanzitutto il seguente comando nel terminale

sudo rm /var/lib/apt/lists/* -vf

quindi aggiornare il sistema immettendo il seguente comando nel terminale

sudo apt-get update && sudo apt-get upgrade

dopo questo non dovrebbero esserci errori e tutto dovrebbe funzionare bene.


2

Quello che ha funzionato per me è stato prima eliminare la chiave e poi reinstallarla. Per ottenere ciò ho fatto quanto segue:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

eliminazione con

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Quindi, reinstallare installando

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

1

Ho riscontrato lo stesso problema, aggiungendo un ppa (ppa:nathandyer/vocal-stable ), ha rotto i miei repository. Sono stato guidato dall'autore di Web Upd8, su come posso provare a risolvere questo problema, ecco i suoi passi che mi hanno aiutato.

Fai il backup del tuo .gpg chiavi, nel caso in cui qualcosa vada storto.

Consente di creare una cartella in cui alloggeremo il nostro backup.

  • mkdir ~/gpg-backups

    Ciò esegue il backup di tutti i file nella /etc/apt/trusted.gpg.d/cartella.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Ora rimuoveremo tutte le .gpgchiavi.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

in Software e aggiornamenti, nella scheda "Autenticazione", fai clic su "Ripristina valori predefiniti

Installa il gestore y-ppa per importare tutte le chiavi GPG mancanti

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Riferimento :


1
Una riga sembra contenere un errore, deve essere sudo rm /etc/apt/trusted.gpg.d/*. Tralasciando l' *al EOL non è possibile, in quanto non è possibile rimuovere le directory non vuote con rmcui l' -ropzione non è specificata .-- Ah, e si può uccidere 2 piccioni con 1 pietra dalla linea sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Perché se si sposta il file, non è necessario rmsuccessivamente il file di origine.
syntaxerror,

1

Volevo correggere automaticamente errori come questo in uno script bash. Per chiunque sia interessato, questo dovrebbe fare il trucco:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi

0

Se hai qualcosa del genere:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Prima di tutto prova:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

L'output dell'ultimo comando può essere:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Quindi è necessario andare a /etc/apt/trusted.gpg.d/e rimuovere le chiavi inutilizzate e quindi ripetere apt-key adveaptitude update


0

Correre wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -


-1

Questo problema si è verificato durante l'installazione di 12.04 utilizzando le impostazioni tedesche. L'elenco dei repository utilizza quindi i repository mirror tedeschi per impostazione predefinita. In tal caso, è possibile modificare l'elenco dei repository e modificare tutti i repository mirror tedeschi nei repository standard Ubuntu.

Puoi usare il seguente metodo:

sudo nano /etc/apt/sources.list

Cerca e sostituisci in Nano utilizzando Alt-r

Cerca (per sostituire): /de.

Sostituirlo con: /

Sostituisci tutto (stampa A)

Salva file Ctrl-x

Quindi aggiornare il sistema immettendo il seguente comando nel terminale:

sudo apt-get update && sudo apt-get upgrade

Dopo questo non dovrebbero esserci errori e tutto dovrebbe funzionare bene.


2
Questo in realtà non risponde alla domanda dei PO, specialmente considerando che non stavano usando le fonti.
Kevin Bowen,
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.