¿Cómo arreglar las claves GPG faltantes?


154

Acabo de instalar Ubuntu 12.04 y agregué un repositorio, y cuando lo hice apt-get update, me faltaba la clave gpg.

El siguiente comando parece no funcionar para mí:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

¿Cómo arreglar este problema?


1
Sería bueno que las respuestas a esta pregunta incluyeran por qué este error está ocurriendo en primer lugar y qué hacer para evitarlo en el futuro.
Flimm

Resolví mi problema usando Y-ppa-manager. ¡Gracias a Ashu por la solución!

1
Solución detallada con capturas de pantalla opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur

Respuestas:


222

Me gustó esta solución, vuelva a descargar las claves que faltan del servidor de claves de Ubuntu.

Para Ubuntu

En mi caso

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Aquí está el comando para agregar la clave faltante mencionada en el mensaje de error.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Entonces tomo la clave que falta 2EA8F35793D8809Ay le pido al keyserver.ubuntu.com que la agregue a la lista de claves que tengo en apt.

Para linux mint
Su servidor de claves es ligeramente diferentekeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Servidores clave alternativos para probar
keyserver.ubuntu.com


1
askubuntu.com/a/136735/10998 no funcionó para mí.
nelaaro

55
¿Hay alguna implicación de seguridad al hacer esto? Básicamente solo estoy descargando una clave pública a través de http, ¿verdad?
Ajedi32

1
@iamcreasy, para demostrar a las instalaciones de Ubuntu que los paquetes que está instalando son seguros y libres de malware, cada paquete está firmado por el servidor de claves ubuntu. Por lo tanto, su instalador verifica si el paquete que está instalando proviene de una fuente confiable y verificada. No he encontrado ninguna documentación realmente buena al respecto, pero esto podría ayudar [gpg doc] ( help.ubuntu.com/community/… )
nelaaro

1
He creado una función para agregar claves necesarias adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}Y para eliminar claves duplicadas o problemáticas, utilizo para hacer esto:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo

1
Recomiendo --keyserver ha.pool.sks-keyservers.net. Es un grupo de servidores de claves de alta disponibilidad, lo que aumenta en gran medida sus posibilidades de obtener la clave que desea.
Robin como el pájaro

21

Hay un software llamado ya que Y PPA managerpuede ayudar a corregir los errores de las claves GPG.
Gerente de PPA

Instalar -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Una vez que lo instale, inícielo, luego vaya advancey seleccione "importar todas las claves GPG faltantes"


2
¡Debe agregar sudo a este comando! sudo apt-get...
Fih

Esto también funcionó para mí y estoy muy impresionado con la interfaz limpia y fácil de usar de Y PPA Manager, fue un buen descubrimiento, gracias Ashu.
CoalaWeb

Hice lo que dices pero no pasó nada. Quiero decir que no puedo encontrar la aplicación en ningún lugar del menú.
Cristiana Nicolae

@CristianaNicolae Una vez instalado, puede encontrar Y PPA Manager en Aplicaciones> Herramientas del sistema.
Ashu

Lo siento Ashu, lo he comprobado y comprobado dos veces. Todavía no puedo verlo allí. Parece que está instalado en algún lugar del sistema, pero por alguna razón, no aparece en ningún lugar del menú.
Cristiana Nicolae

14

La descarga automática usando apt-key adv --recv-keyspuede no funcionar detrás de un firewall.

En este caso, abra la página web de Ubuntu Key Server en su navegador web y busque la cadena 0x<hexadecimal code of your missing key>.

Abre el enlace en la sección de pub . Guarde el contenido clave (de -----BEGIN PGP PUBLIC KEY BLOCK-----a -----END PGP PUBLIC KEY BLOCK-----) como un archivo.

Entonces corre:

sudo apt-key add <file-with-saved-key>

Fuente: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html


12

primero ingrese el siguiente comando en la terminal

 sudo rm /var/lib/apt/lists/* -vf

luego actualice su sistema ingresando el siguiente comando en la terminal

 sudo apt-get update && sudo apt-get upgrade

después de esto no debería haber errores y todo debería funcionar bien.


Gracias por la respuesta. La solución para mi problema fue mucho más simple: escribir sudo suantes de escribir mi comando arriba
Fih

Si bien eso lo habrá ayudado, sudo sude ninguna manera es el enfoque correcto, en este caso sudo -shabría hecho lo que necesitaba.
guntbert

Creo que quisiste decir sudo rm /var/lib/apt/lists/* -rf(opción "r" en lugar de "v")
Oliboy50

99
Usar ambos sudoy rmes peligroso. Usar ambos rmy *es peligroso. Usa los tres en el mismo comando y un tiburón te morderá, o tus archivos.
JB.

Esto no está funcionando para mí.
WiSaGaN

9

Para Ubuntu 12.04 Precise: solución permanente

a este mensaje de error que ocurre después de agregar un nuevo repositorio y actualizar la lista de repositorios. Esto se debe a un servidor cuya dirección ya no es válida. Así que simplemente cambie la dirección a una buena.

  1. Abra el archivo ~/.gnupg/gpg.confcon un editor de texto.

    En terminal: gedit ~/.gnupg/gpg.conf

  2. luego, en este archivo, encuentre la siguiente línea en negrita (línea 116) (que debería ser la predeterminada de la siguiente manera):

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

  3. luego agregue la siguiente línea en negrita, para finalmente dar el siguiente resultado:

    (agregue # a la segunda línea como sigue para comentar la dirección anterior)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: pgp-public-keys@keys.nl.pgp.net # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Guarde el archivo e intente actualizar nuevamente:

    En terminal: sudo apt-get update


7

Basado en la respuesta nelaar:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

El script volca todos los errores en un archivo temporal y luego los recorre, importando las claves que faltan.


6

La forma más fácil es con Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Abra Y PPA Manager de Dash

ingrese la descripción de la imagen aquí

Ingrese su contraseña de administrador

ingrese la descripción de la imagen aquí

Haga doble clic en la opción avanzada

ingrese la descripción de la imagen aquí

Haga clic en Intentar importar todas las claves GPG faltantes

ingrese la descripción de la imagen aquí

Haga clic en Aceptar para arreglarlo


4

Primero ingrese el siguiente comando en la terminal

sudo rm /var/lib/apt/lists/* -vf

luego actualice su sistema ingresando el siguiente comando en la terminal

sudo apt-get update && sudo apt-get upgrade

después de esto no debería haber errores y todo debería funcionar bien.


2

Lo que funcionó para mí fue eliminar primero la clave y luego reinstalarla. Para lograr eso hice lo siguiente:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

borrando con

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Luego, vuelva a instalar escribiendo

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

1

He encontrado el mismo problema, al agregar un ppa ( ppa:nathandyer/vocal-stable), rompió mis repositorios. Fui guiado por el Autor de Web Upd8, sobre cómo puedo tratar de arreglar esto, aquí están sus pasos que me funcionaron.

Haga una copia de seguridad de sus .gpgclaves, en caso de que algo salga mal.

Hagamos una carpeta en la que alojaremos nuestra copia de seguridad.

  • mkdir ~/gpg-backups

    Esto respalda todos los archivos en la /etc/apt/trusted.gpg.d/carpeta.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Ahora, eliminaremos todas las .gpgclaves.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

en Software y actualizaciones, en la pestaña "Autenticación", hizo clic en "Restaurar valores predeterminados"

Instale y-ppa manager para importar todas las claves GPG faltantes

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Referencia :


1
Una línea parece contener un error, debe ser sudo rm /etc/apt/trusted.gpg.d/*. *No es posible omitir en el EOL, ya que no puede eliminar los directorios no vacíos rmcuando -rno se especifica la opción. Ah, y puede matar 2 pájaros con 1 piedra por línea sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Porque si mueve el archivo, no necesita rmel archivo fuente después.
syntaxerror

1

Quería corregir automáticamente errores como este en un script bash. Para cualquier persona interesada, esto debería ser el truco:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi

0

Si tienes algo como esto:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Primero que nada intente:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

La salida del último comando puede ser:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Por lo tanto, debe ir /etc/apt/trusted.gpg.d/y quitar las teclas no utilizadas y luego repetir apt-key advyaptitude update


0

correr wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -


-1

Este problema se me ocurrió cuando instalo 12.04 usando la configuración alemana. La lista de repositorios utiliza repositorios espejo alemanes de forma predeterminada. Si ese es el caso, puede editar la lista de repositorios y cambiar todos los repositorios espejo alemanes a los repositorios estándar de Ubuntu.

Puede usar el siguiente método:

sudo nano /etc/apt/sources.list

Buscar y reemplazar en Nano usando Alt-r

Buscar (para reemplazar): /de.

Reemplazar con: /

Reemplazar todo (presionar A)

Guardar archivo Ctrl-x

Luego actualice su sistema ingresando el siguiente comando en la terminal:

sudo apt-get update && sudo apt-get upgrade

Después de esto no debería haber errores y todo debería funcionar bien.


2
Esto realmente no responde la pregunta de los OP, especialmente teniendo en cuenta que no estaban usando fuentes.
Kevin Bowen
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.