sudo apt-key adv --keyserver keyserver.ubuntu.com - o comando recv 7F0CEB10 retorna erro

30

Estou tentando instalar o Mongodb no Ubuntu 12, mas quando executo este comando:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Isso retornou o erro abaixo:

host do
keyserver.ubuntu.com não encontrado gpgkeys: erro de busca HTTP 7: não foi possível conectar: ​​nenhum arquivo ou diretório
gpg: nenhum dado válido do openPGP encontrado
gpg: número total de processos: 0

Desliguei o Firewall no Iptables, mas ele não funciona. Existe alguma ideia?

Nyamka
fonte
Seu sistema pode resolver o keyserver.ubuntu.com como um endereço IP? Ou seja, qual é o resultado dig keyserver.ubuntu.com?
Xyon 17/07/2013

Respostas:

35

Isso pode não ser realmente um problema ao procurar o servidor de chaves, que é o que o erro sugere. O comando apt-key chama gpg, que por sua vez tenta acessar o servidor de chaves. Aparentemente, existe um bug no gpg, pelo qual, se o servidor de chaves não tiver a chave que você está solicitando, o gpg interpreta mal isso como "host não encontrado".

Pode ser que um servidor de chaves não responsivo faça a mesma coisa, e vi ambientes em que os servidores de chaves estão bloqueados (regras de firewall corporativas), de modo que essa poderia ser sua causa raiz se houver um firewall upstream que você não tem acesso para.

Apenas para referência, a chave está lá e o servidor de chaves está atualmente respondendo por mim:

$ 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 <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Pode ser que a porta seja o problema (foi a última vez que encontrei um problema de firewall corporativo), então tente fazer isso na porta HTTP padrão (80); veja se isso resolve tudo:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Adam C
fonte
4
"fazer isso na porta HTTP padrão (80)" é bastante complicado! tks
Bill.Zhuang
1
Aviso: sem SSL, você pode ser atingido por um ataque do MitM que serve uma chave cuja impressão digital tem os mesmos oito caracteres finais (por exemplo, chave de ataque ). Essa chave pode nem ser compartilhada publicamente, então você nunca saberia que está sendo pwned. Para impedir tal ataque de chaves compartilhadas publicamente, o servidor de chaves do Debian possui uma política que afirma que "somente as chaves nos porta-chaves do Debian ... serão retornadas por este servidor"
Adam Katz
21

Eu enfrentei o mesmo problema que minha máquina está atrás de um proxy corporativo. Adicionando o gpg --keyserver-option http-proxyfeito o truque. Parece:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
fgungnir
fonte
1
Obrigado! Bom que eu não parar de ler no topo ...
Moraru Lilian
20

Se você estiver usando um proxy, por exemplo, o proxy da empresa, provavelmente a única maneira é inseri-lo manualmente, o que é bastante simples. Corre:

sudo apt-get update

e obtenha o ID do pub_key. Então vá para http://keyserver.ubuntu.com/ e pesquise a chave como um hexidecimal, por exemplo, se a chave for 7936A783B, procure 0x7936A783B. Clique no link do filhote e copie o conteúdo das chaves e salve-o em um arquivo txt. Vá para o terminal e navegue até o arquivo e execute:

sudo apt-key add key.txt

Se funcionar, você receberá um OKfeedback simples . Quando todas as chaves forem adicionadas, você poderá executar:

sudo apt-get update

e aí está!

DKo
fonte
3
Isso é legal; também é possível usar o URL que você obtém literalmente da apt-keyseguinte maneira:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731 25/02
2
@ sxc731 - A apt-keypágina de manual diz: “Observe que não há verificações executadas, portanto é fácil minar completamente a infraestrutura apt-secure (8) se usada sem cuidado.” Isso significa que você realmente não deseja fazer isso sem SSL. Mude isso para --fetch-keys https://…e você deve estar razoavelmente seguro.
Adam Katz
@AdamKatz ponto muito bom, obrigado. Infelizmente não posso editar meu comentário para aplicar sua sugestão, mas com o mesmo valor que de uma votação ...
sxc731 04/01
A --fetch-keysopção falhou para mim com o erro: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https 'não suportado gpg: nenhum manipulador para o esquema do servidor de chaveshttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin 16/01
Obrigado, exatamente o que eu estava procurando.
Miguel Ortiz
1

A segunda abordagem mencionada neste link funcionou para mim. Baixe manualmente a chave e adicione-a. O link fornece um procedimento passo a passo para corrigir o erro que ocorre devido à falta da chave.

Aniket Thakur
fonte