sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 comando devuelve error

30

Estoy tratando de instalar Mongodb en Ubuntu 12 pero cuando ejecuto este comando:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Esto devolvió el siguiente error:

no se encontró el
servidor keyserver.ubuntu.com gpgkeys: error de búsqueda HTTP 7: no se pudo conectar: ​​no se encontró tal archivo o directorio
gpg: no se encontraron datos válidos de openPGP
gpg: Número total de procesos: 0

Apagué Firewall en Iptables, pero no funciona. ¿Hay alguna idea?

nyamka
fuente
¿Puede su sistema resolver keyserver.ubuntu.com como una dirección IP? Es decir, ¿cuál es el resultado de dig keyserver.ubuntu.com?
Xyon

Respuestas:

35

Esto puede no ser realmente un problema al buscar el servidor de claves, que es lo que sugiere el error. El comando apt-key llama a gpg, que a su vez intenta acceder al servidor de claves. Aparentemente hay un error en gpg por el cual si el servidor de claves no tiene la clave que está solicitando, gpg lo malinterpreta como "host no encontrado".

Es muy posible que un servidor de claves que no responda haga lo mismo, y he visto entornos en los que los servidores de claves están bloqueados (reglas de firewall corporativo), por lo que esa podría ser su causa principal si hay un firewall ascendente al que no tiene acceso a.

Solo como referencia, la clave está allí y el servidor de claves está respondiendo actualmente por mí:

$ 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

Puede ser que el problema sea el puerto (fue la última vez que tuve un problema con el firewall corporativo), así que intente hacerlo en el puerto HTTP estándar (80), vea si eso soluciona las cosas:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Adam C
fuente
44
"hacer esto en el puerto HTTP estándar (80) en su lugar" es bastante complicado. TKS
Bill.Zhuang
1
Advertencia: sin SSL, podría ser golpeado por un ataque MitM que le sirve una clave cuya huella digital tiene los mismos ocho caracteres finales (por ejemplo, clave de ataque ). Es posible que dicha clave ni siquiera se comparta públicamente, por lo que nunca sabría que fue pwned. Para evitar un ataque de este tipo de claves compartidas públicamente, el servidor de claves de Debian tiene una política que establece que "solo las claves en los llaveros de Debian ... serán devueltas por este servidor"
Adam Katz
21

Enfrenté el mismo problema ya que mi máquina está detrás de un proxy corporativo. Agregar el gpg --keyserver-option http-proxyhecho el truco. Parece:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
fgungnir
fuente
1
¡Gracias! Bien que no dejé de leer en la parte superior ...
Moraru Lilian
20

Si está utilizando un proxy, por ejemplo, el proxy de la compañía, entonces probablemente la única forma es ingresarlo manualmente, lo cual es bastante sencillo. Correr:

sudo apt-get update

y obtener la identificación de pub_key. Luego vaya a http://keyserver.ubuntu.com/ y busque la clave como hexadecimal, por ejemplo, si la clave es 7936A783B, luego busque 0x7936A783B. Haga clic en el enlace pup y copie el contenido de las claves y guárdelo en un archivo txt. Vaya a la terminal y navegue hasta el archivo y ejecute:

sudo apt-key add key.txt

Si funciona, recibirá una OKrespuesta simple . Cuando se agregan todas las claves, puede ejecutar:

sudo apt-get update

¡Y ahí lo tienes!

DKo
fuente
3
Esto es ordenado; También es posible utilizar la URL con la que se obtiene literalmente de la apt-keysiguiente manera:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731
2
@ sxc731 - La apt-keypágina del manual dice: "Tenga en cuenta que no se realizan verificaciones, por lo que es fácil socavar por completo la infraestructura de apt-secure (8) si se usa sin cuidado". Esto significa que realmente no desea hacerlo sin SSL Cambie eso a --fetch-keys https://…y debería estar razonablemente seguro.
Adam Katz
@AdamKatz muy buen punto, gracias. Lamentablemente, no puedo editar mi comentario para aplicar su sugerencia, pero voté de todos modos ...
sxc731
La --fetch-keysopción me falló con un error: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https 'gpg no compatible: no hay controlador para el esquema del servidor de claveshttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin
Gracias, exactamente lo que estaba buscando.
Miguel Ortiz
1

El segundo enfoque mencionado en este enlace funcionó para mí. Descargue manualmente la clave y agréguela. El enlace proporciona un procedimiento paso a paso para corregir el error que ocurre debido a la falta de clave.

Aniket Thakur
fuente