Se agotó el tiempo de espera del servidor de claves al intentar agregar una clave pública GPG


67

Estoy tratando de agregar una clave pública para instalar un programa con CPG. Pero soy bastante nuevo en esto, pero cada comando que encontré me dio el mismo error:

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

¿Cómo es esto posible? Parece que estoy detrás de algún tipo de bloqueo que hace que sea imposible establecer una conexión con el servidor de claves. Investigué muchas preguntas de OP e intenté todos los comandos que pude encontrar, pero nada funcionó. ¿Alguien tuvo este problema antes?


¿Has intentado usar otro servidor de claves? hkp: //subkeys.pgp.net o hkp: //pgp.mit.edu: 11371
jasonwryan

@jasonwryan He probado el pgp.mit.edu pero sin hkp: // ¿es importante el uso de eso? No lo creo, pero vale la pena intentarlo
Sander Van der Zeeuw

Utilice la dirección completa y el puerto alternativo ...
jasonwryan

@jasonwryan ¿Todavía tengo?: pgp.mit.edu: Se agotó el tiempo de espera de la conexión gpgkeys: Error de recuperación HTTP 7: no se pudo conectar: ​​Se agotó el tiempo de espera de la conexión gpg: no se encontraron datos válidos de OpenPGP. gpg: Número total procesado: 0
Sander Van der Zeeuw

3
gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59funcionó para mí ...
jasonwryan

Respuestas:


114

Esto generalmente es causado por su firewall que bloquea el puerto 11371. Puede desbloquear el puerto en su firewall. En caso de que no tenga acceso al firewall, puede:

  1. Forzarlo a usar el puerto en 80lugar de11371

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

    • Encuentre y abra la clave desde el servidor de claves.
    • Copie su contenido en un archivo de texto.
    • Vaya a Herramienta del sistema> Preferencias> Fuentes de software> Autenticación> Agregar clave y seleccione el archivo de texto creado. Para Ubuntu 14.04 y versiones posteriores, pruebe: Centro de software -> Editar -> Fuentes de software -> Autenticación -> Importar archivo de clave

55
gpg --import key.txtsi necesita importar a través de la línea de comando para su información.
Banjer

1
sks-keyservers.net/i para descargar la clave FYI
Lakshmi Narayanan

2
¡Vota por una alternativa! En Ubuntu 14.04 y posterior, se agrega desdeSoftware Center -> Edit -> Software Sources -> Authentication -> Import key file
Roy Ling

Esto solucionó mi problema con la instalación de las claves para rvm. La siguiente llamada estaba pendiente para mí: solicitar la clave D39DC0E3 del servidor hkp keys.gnupg.net
mdgrech

44
"Busque y abra la clave desde el servidor de claves". Lo que nadie menciona es cómo se hace. En mi caso, la clave en cuestión está en gpg.mit.edu. Bien, fácil, solo ve a pgp.mit.edu y pega la clave en el Search Stringcampo. Incorrecto. Debe conocer el secreto mágico: anteponga la clave con 0x. Si la clave es 0F571F6C, debe buscar 0x0F571F6C, lo cual no es obvio.
Ben Johnson

19

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


66
sudono es necesario y, aparte de eso, esta respuesta no agrega nada al problema del afiche ...
jasonwryan

44
Estaba trabajando en esto hace solo una hora, y agregar esta línea me resolvió el problema. Existe la diferencia de que especifico el puerto 80 explícitamente. También especifico el protocolo explícitamente. Puede que tengas razón en que sudo no es necesario, pero mi respuesta tiene un poco de información relevante, ¿no crees? Ah, y tu respuesta también es correcta.
Victor Piousbox

55
Elimina el sudo y la respuesta es correcta.
jasonwryan

44
¿Necesario para recibir claves de un servidor de claves público? No lo creo ...
jasonwryan

2
Agregar el hkp: // como se señala en esta respuesta funciona para mí.
barryhunter

9

Esto funcionó para mí:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys AKEYXXX

Te amo, hombre !
Yasser Sinjab

7

Encontré el mismo problema cuando intentaba agregar una GPGclave detrás de un proxy. La solución a mi problema fue agregar el --keyserver-optionsen el comando :

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

1

Intente obtener su clave de otro servidor (funcionó para mí):

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

o

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

1

Solucioné mi problema ejecutando el siguiente comando:

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


0

Estoy viendo esto en uno de los dos cuadros idénticos que ejecutan implementaciones ansibles contra una imagen de Ubuntu 14.04. De hecho, había funcionado anteriormente, app-infra-1pero en algún momento comenzó a fallar. El hecho de que haya tenido éxito en la app-infra-2recreación reciente sugiere que se trata de una corrupción app-infra-1o un error en la detección y notificación de apt-key adv.

Intenté eliminar la clave usando apt-key delpero sigo obteniendo el mismo error.

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

Al final, como es una máquina virtual, mi solución fue reconstruirlo con vagrant.


0

Para mí fue necesario agregar declaraciones ENV en mi archivo acoplable. P.ej

ENV  http_proxy "http://[yourproxy]:[port]/"
ENV  https_proxy "http://[yourproxy]:[port]/"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.