O servidor de chaves atingiu o tempo limite ao tentar adicionar uma chave pública GPG

67

Estou tentando adicionar uma chave pública para instalar um programa com o CPG. Mas eu sou muito novo nisso, mas todos os comandos que encontrei me deram o mesmo erro:

gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59
gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

Como isso é possível, parece que eu estou por trás de algum tipo de bloqueio que torna impossível estabelecer uma conexão com o servidor de chaves. Examinei muitas perguntas sobre OP e tentei todos os comandos que consegui encontrar, mas nada funcionou. Alguém já teve esse problema antes?

Sander Van der Zeeuw
fonte
Você já tentou usar outro servidor de chaves? hkp: //subkeys.pgp.net ou hkp: //pgp.mit.edu: 11371
jasonwryan
@jasonwryan Eu tentei o pgp.mit.edu, mas sem hkp: // o uso disso é importante? eu não acredito que sim, mas vale a pena tentar para mim
Sander Van der Zeeuw
Use o endereço completo, ea porta alternativa ...
jasonwryan
@jasonwryan Eu ainda tenho?: pgp.mit.edu: Tempo limite da conexão esgotado gpgkeys: erro de busca HTTP 7: não foi possível conectar: ​​Tempo limite da conexão esgotado gpg: nenhum dado OpenPGP válido encontrado. gpg: Número total processado: 0
Sander Van der Zeeuw
3
gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59trabalhou para mim ...
jasonwryan

Respostas:

113

Isso geralmente é causado pelo seu firewall bloqueando a porta 11371. Você pode desbloquear a porta no seu firewall. Caso você não tenha acesso ao firewall, você pode:

  1. Force-o a usar a porta em 80vez de11371

    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59
  2. alternativamente

    • Encontre e abra a chave no servidor de chaves.
    • Copie o conteúdo para um arquivo de texto.
    • Vá para Ferramenta do sistema> Preferências> Fontes de software> Autenticação> Adicionar chave e selecione o arquivo de texto criado. Para o Ubuntu 14.04 e posterior, tente: Centro de Software -> Editar -> Fontes de Software -> Autenticação -> Importar arquivo de chave
tutak
fonte
5
gpg --import key.txtse você precisar importar via linha de comando FYI.
Banjer
11
sks-keyservers.net/i para baixar a chave FYI
Lakshmi Narayanan
2
voto positivo por caminho alternativo! No Ubuntu 14.04 e posterior, é adicionado a partir deSoftware Center -> Edit -> Software Sources -> Authentication -> Import key file
Roy Ling
Isso corrigiu meu problema com a instalação das chaves do rvm. A chamada seguinte foi pendurado para mim: solicitando D39DC0E3 chave keys.gnupg.net servidor hkp
mdgrech
4
"Encontre e abra a chave no servidor de chaves." O que ninguém menciona é como isso é feito. No meu caso, a chave em questão está em gpg.mit.edu. Ok, fácil, basta ir ao pgp.mit.edu e colar a chave no Search Stringcampo! Errado. Você deve conhecer o segredo mágico: acrescente a chave com 0x. Se a chave for 0F571F6C, você deve procurar 0x0F571F6C, o que não é de forma alguma óbvio.
Ben Johnson
19

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY

Victor Piousbox
fonte
6
sudonão é necessário e, para além disso, esta resposta não acrescenta nada para o problema do cartaz ...
jasonwryan
4
Eu estava trabalhando nisso há apenas uma hora e adicionar essa linha resolveu o problema para mim. Há a diferença de eu especificar a porta 80 explicitamente. Eu também especifico o protocolo explicitamente. Você pode estar certo de que o sudo não é necessário, mas minha resposta fornece um pouco de informações relevantes, você não acha? Ah, e sua resposta também está correta.
Victor Piousbox
5
Remova o sudo e a resposta está correta.
jasonwryan
4
Necessário receber chaves de um servidor de chaves público? Eu acho que não ... #
1113 jasonwryan
2
Adicionar o hkp: // conforme observado nesta resposta funciona para mim.
barryhunter
9

Isso funcionou para mim:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys AKEYXXX
eltoro56
fonte
Eu te amo Cara !
Yasser Sinjab
7

Encontrei o mesmo problema ao tentar adicionar uma GPGchave atrás de um proxy. A solução para o meu problema foi adicionar --keyserver-optionso comando :

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY
Alex.Bai
fonte
1

Tente obter sua chave de outro servidor (funcionou para mim):

gpg --keyserver hkp://keys.gnupg.net --recv-keys 94558F59

ou

gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59
installero
fonte
1

Corrigi o meu problema executando o seguinte comando:

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys *somekey*

Hadi Rasekh
fonte
0

Estou vendo isso em uma das duas caixas idênticas executando implantações ansible contra uma imagem do ubuntu 14.04. De fato, ele havia trabalhado anteriormente, app-infra-1mas em algum momento começou a falhar. O fato de ter conseguido app-infra-2recriar recentemente sugere que é uma corrupção app-infra-1ou um bug na detecção e relatório de apt-key adv.

Tentei excluir a chave usando, apt-key delmas continuo recebendo o mesmo erro.

changed: [app-infra-2] => {"changed": true, "item": "", "repo": "ppa:webupd8team/java", "state": "present"}
failed: [app-infra-1] => {"cmd": "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886", "failed": true, "item": "", "rc": 2}
stderr: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

stdout: Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.2zqQuFdBjg --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/puppetlabs-keyring.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886

msg: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

No final, como é uma VM, minha solução foi recriá-la vagrant.

darKoram
fonte
0

Para mim, foi necessário adicionar instruções ENV ao meu arquivo docker. Por exemplo

ENV  http_proxy "http://[yourproxy]:[port]/"
ENV  https_proxy "http://[yourproxy]:[port]/"
TExaaS-Bikepro
fonte