¿Cómo verificar el archivo descargado con el archivo .sig?

85

Cuando descargo GCC, también tiene un .sigarchivo, y creo que se proporciona para verificar el archivo descargado. (Descargué GCC desde aquí ).

Pero no puedo entender cómo debo usarlo. Lo intenté gpg, pero se queja de la clave pública.

[root@localhost src]# gpg --verify gcc-4.7.2.tar.gz.sig gcc-4.7.2.tar.gz
gpg: Signature made Thu 20 Sep 2012 07:30:44 PM KST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
[root@localhost src]# 

¿Cómo puedo verificar el archivo descargado con el .sigarchivo?

eonil
fuente

Respuestas:

98

Necesita importar la clave pública: C3C45C06

Se puede realizar en tres pasos.

  1. encontrar ID de clave pública:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Firma hecha Čt 20. září 2012, 12:30:44 CEST usando el ID de clave DSA C3C45C06 gpg: No se puede verificar la firma: No hay clave pública

  2. importar la clave pública del servidor de claves. Por lo general, no es necesario elegir el servidor de claves, pero se puede hacer con él --keyserver <server>. Ejemplos de servidor de claves.

    $ gpg --recv-key C3C45C06 gpg: solicitando la clave C3C45C06 del servidor hkp keys.gnupg.net gpg: clave C3C45C06: clave pública "Jakub Jelinek [email protected]" gpg importado: no se encontraron claves de confianza en última instancia gpg: Número total procesado : 1 gpg: importado: 1

Si el error de comando desaparece con un tiempo de espera, es posible que esté detrás de un firewall que está bloqueando el puerto gpg predeterminado. Intente usar la opción `--keyserver 'con el puerto 80 (casi todos los firewalls permiten el puerto 80 b / c de navegación web):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. verificar firma:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Firma hecha Čt 20. září 2012, 12:30:44 CEST usando la clave DSA ID C3C45C06 gpg: Buena firma de "Jakub Jelinek [email protected]" [desconocido ] gpg: ADVERTENCIA: ¡Esta clave no está certificada con una firma confiable! gpg: No hay ninguna indicación de que la firma pertenezca al propietario. Huella digital de clave principal: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

La salida debe decir "Buena firma".


gpg: ADVERTENCIA: ¡Esta clave no está certificada con una firma confiable!

Es para otra pregunta;)

ANUNCIO
fuente
8
¡Gran explicación paso a paso!
Matthew Kraus
4
En el caso de que el archivo que requiere verificación sea gnupg (no en la pregunta), las sumas de verificación SHA-1 están disponibles en el sitio de gnupg para verificar la primera descarga de gnupg.
10 cls
Durante la verificación de la firma, gpg procesa el archivo tarball y su archivo .sig correspondiente como una unidad. Si el tarball falta o se le cambia el nombre, gpg brinda la oportunidad de especificar el nombre del tarball.
Andrew P.
Obtuve una clave RSA, y no puedo trabajar sin o con --keyserveresa lista, solo una la obtiene, pero parece que no es confiable, es extraño ya que lo estoy probando en GNU coreutilsun paquete ampliamente utilizado.
user10089632
Además, si gpg advierte "no se ha proporcionado ningún comando, adivina lo que quieres decir", utiliza gpg --verify gcc-4.7.2.tar.gz.sigen su lugar
xdavidliu
23

Esta otra vía es particularmente útil para verificar proyectos GNU (por ejemplo, Octave ) ya que la clave solicitada por su firma puede no encontrarse en ningún servidor de claves.

De http://ftp.gnu.org/README

También hay archivos .sig, que contienen firmas GPG separadas de los archivos anteriores, firmadas automáticamente por el mismo script que los genera.

Puede verificar las firmas de los archivos de proyecto gnu con el archivo de anillo de claves desde:

https://ftp.gnu.org/gnu/gnu-keyring.gpg

En un directorio con el archivo de anillo de claves, el archivo de origen a verificar y el archivo de firma , el comando a utilizar es:

$ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig

tay10r
fuente
3
Pero si estamos hablando de seguridad, entonces es mejor usar la conexión HTTPS: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim
3
Es curioso, estoy aquí explícitamente para averiguar cómo validar Octave. :)
Ron Jensen - Todos somos Monica
Gracias. No pude encontrar la clave del mantenedor de Bash en ningún servidor de claves, pero esto era lo que necesitaba para verificar la firma de su código fuente.
Anthony Geoghegan
1
Por octava ver la respuesta sobre Gpg4win aplicación aquí: superuser.com/questions/1268544/...
Martin
1

Debe buscar en los servidores de claves públicos la identificación de clave dada: en su caso, importe la clave ID C3C45C06 encontrada en su almacén de claves local y, después de esto, la verificación debería ser correcta. Yo uso Ubuntu 12.04 y viene con el software de administración de claves Seahorse. Antes de la importación de claves, estaba viendo esto:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Can't check signature: public key not found

Después de la importación de la clave, estaba viendo esto:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Good signature from "Ruben Rodriguez (GNU IceCat releases key) <[email protected]>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: A573 69A8 BABC 2542 B5A0  368C 3C76 EED7 D7E0 4784
zloster
fuente