sudo apt-key adv --keyserver keyserver.ubuntu.com --recv Il comando 7F0CEB10 restituisce un errore


30

Sto cercando di installare Mongodb su Ubuntu 12 ma quando eseguo questo comando:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Questo ha restituito l'errore di seguito:

keyserver.ubuntu.com host non trovato
gpgkeys: errore di recupero HTTP 7: impossibile connettersi: nessun file o directory
gpg simile : nessun dato openPGP valido trovato
gpg: numero totale processi: 0

Ho disattivato Firewall su Iptables, ma non funziona. C'è qualche idea?


Il tuo sistema può risolvere keyserver.ubuntu.com come indirizzo IP? Cioè, qual è l'output di dig keyserver.ubuntu.com?
Xyon,

Risposte:


35

Questo potrebbe non essere un problema con la ricerca del keyserver, che è ciò che suggerisce l'errore. Il comando apt-key chiama gpg, che a sua volta tenta di accedere al keyserver. Apparentemente c'è un bug in gpg per cui se il keyserver non ha la chiave che stai richiedendo, gpg interpreta erroneamente questo come "host non trovato".

Può darsi che un keyserver non responsivo farà la stessa cosa e ho visto ambienti in cui i server di chiavi sono bloccati (regole del firewall aziendale), quindi potrebbe essere la causa principale se esiste un firewall a monte a cui non si ha accesso a.

Solo per riferimento, la chiave è lì e il keyserver sta rispondendo per me:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <richard@10gen.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

È possibile che la porta sia il problema (era l'ultima volta che ho riscontrato un problema con il firewall aziendale), quindi prova a farlo sulla porta HTTP standard (80) invece, vedi se risolve il problema:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

4
"Fare questo invece sulla porta HTTP standard (80)" è piuttosto complicato! tks
Bill.Zhuang

1
Avvertenza: senza SSL, potresti essere potenzialmente colpito da un attacco MitM che ti serve una chiave la cui impronta digitale ha gli stessi otto caratteri finali ( esempio chiave di attacco ). Una chiave del genere potrebbe non essere nemmeno condivisa pubblicamente, quindi non sapresti mai di essere stata investita. Per impedire tale attacco da chiavi condivise pubblicamente, il server delle chiavi di Debian ha una politica che afferma "solo le chiavi negli anelli dei tasti Debian ... saranno restituite da questo server"
Adam Katz,

21

Ho riscontrato lo stesso problema della mia macchina dietro un proxy aziendale. Aggiungendo gpg --keyserver-option http-proxyil trucco fatto. Sembra:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10

1
Grazie! Bene che non ho smesso di leggere in alto ...
Moraru Lilian,

20

Se si utilizza un proxy, ad esempio il proxy dell'azienda, probabilmente l'unico modo è quello di inserirlo manualmente, il che è piuttosto semplice. Correre:

sudo apt-get update

e ottieni l'id di pub_key. Quindi vai su http://keyserver.ubuntu.com/ e cerca la chiave come esadecimale, ad esempio se la chiave è 7936A783B, quindi cerca 0x7936A783B. Fare clic sul collegamento pup e copiare il contenuto delle chiavi e salvarlo in un file txt. Vai al terminale e vai al file ed esegui:

sudo apt-key add key.txt

Se funziona, otterrai un semplice OKfeedback. Quando vengono aggiunte tutte le chiavi, è possibile eseguire:

sudo apt-get update

E il gioco è fatto!


3
Questo è pulito; è anche possibile utilizzare l'URL che si ottiene testualmente apt-keycome segue:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731

2
@ sxc731 - La apt-keypagina man dice: "Nota che non ci sono controlli eseguiti, quindi è facile minare completamente l'infrastruttura apt-secure (8) se usata senza cura." Questo significa che non vuoi davvero farlo senza SSL. Cambialo in --fetch-keys https://…e dovresti essere ragionevolmente al sicuro.
Adam Katz,

@AdamKatz ottimo punto, grazie. Sfortunatamente non posso modificare il mio commento per applicare il tuo suggerimento ma ho comunque effettuato l'upgrade ...
sxc731

L' --fetch-keysopzione non è riuscita per me con errore: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https 'non supportato gpg: nessun gestore per lo schema keyserverhttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin

Grazie, esattamente quello che stavo cercando.
Miguel Ortiz,

1

Il secondo approccio menzionato in questo link ha funzionato per me. Scarica manualmente la chiave e aggiungila. Il collegamento fornisce una procedura dettagliata per correggere l'errore che si verifica a causa della chiave mancante.

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.