gpg - cifrar falla

27

Al intentar cifrar archivos, aparece el siguiente error en la ventana del editor KGpg:

  

El cifrado falló con el código de error 2

En la línea de comando obtengo:

$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
 ---------------------------------
pub   2048D/5E04B919 2012-02-02 [expires: 2016-02-01]
uid                  Firstname Lastname <[email protected]>
uid                  [jpeg image of size 4005]

$ 
$ gpg --encrypt file-to-encrypt
You did not specify a user ID. (you may use "-r")

Current recipients:

Enter the user ID.  End with an empty line: [email protected]
No such user ID.

Esto solía funcionar tanto con el editor como en la línea de comandos con la misma tecla. El Current recipients: está vacío. ¿Por qué es eso?

ACTUALIZAR :

Al intentar especificar el ID de usuario en la línea de comandos con la opción -r , obtengo lo siguiente:

$ gpg -r [email protected] --encrypt file-to-encrypt
gpg: [email protected]: skipped: unusable public key
gpg: file-to-encrypt: encryption failed: unusable public key

Información:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.10
Release:        12.10
Codename:       quantal

$ dpkg -s gnupg
Package: gnupg
Status: install ok installed
Priority: important
Section: utils
Installed-Size: 1936
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Multi-Arch: foreign
Version: 1.4.11-3ubuntu4.4
    
pregunta marekful 13.03.2014 - 12:51
fuente

4 respuestas

30

Descubrí cuál era el problema y la solución, así que respondo con detalles si alguien se encuentra con el mismo problema, podría ser útil.

El problema es algo ambiguo, no se da ningún mensaje de error realmente informativo.

Resultó que la subclave de cifrado había caducado. Extrañamente, gpg --list-keys NO mostró la subclave caducada !! Una vez que se extendió la caducidad de la subclave, se incluyó en la salida de gpg --list-keys .

Además, KGpg no muestra de ninguna manera que la subclave haya caducado ni permite extender la caducidad de la subclave (solo se puede cambiar la caducidad de la clave principal).

La salida de gpg --list-keys antes de la solución (cambié los datos personales):

$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
---------------------------------
pub   2048D/5E04B919 2012-02-02 [expires: 2016-02-01]
uid                  Firstname Lastname <[email protected]>
uid                  [jpeg image of size 4005]

Nada más.

Sin embargo, gpg --edit 5E04B919 mostró que la subclave está caducada

$ gpg --edit 16AE78C5
gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub  2048D/5E04B919  created: 2012-02-02  expires: 2016-02-01  usage: SCA 
                     trust: ultimate      validity: ultimate
sub  1024g/16AE78C5  created: 2012-02-02  expired: 2014-02-01  usage: E   
[ultimate] (1). Firstname Lastname <[email protected]>
[ultimate] (2)  [jpeg image of size 4005]

gpg>

Después de algunas búsquedas en Google, encontré este archivo de listas de correo que me indicaba la dirección correcta para extender el vencimiento de la subclave mediante la línea de comando gpg :

enlace

Seguí las instrucciones y extendí la caducidad de la subclave. Después de esto, gpg --list-keys dio una salida diferente:

$ gpg --list-keys
/home/user/.gnupg/pubring.gpg
---------------------------------
pub   2048D/5E04B919 2012-02-02 [expires: 2016-03-12]
uid                  Firstname Lastname <[email protected]>
uid                  [jpeg image of size 4005]
sub   1024g/16AE78C5 2012-02-02 [expires: 2016-03-12]

Después de esto, todo volvió a la normalidad, pude cifrar archivos, etc.

    
respondido por el marekful 13.03.2014 - 16:38
fuente
6

En mi caso, importé mi clave ( gpg --import path/to/key ) generada en otra máquina.

Pero no pude usarlo porque no era confiable.

Ejecuté gpg --edit-key "MY KEY ID" trust y configuré el nivel de confianza 5.

Después de eso, mi clave se volvió confiable y ahora puedo usarla para el cifrado.

    
respondido por el mixel 01.03.2017 - 00:49
fuente
1

Debe especificar la clave que desea usar para el cifrado, por lo que el comando que necesita en este caso es gpg -r [email protected] --encrypt file-to-encrypt .

    
respondido por el Tim Lamballais 13.03.2014 - 13:11
fuente
1

Me encontré con el mismo problema (clave pública vencida) y encontré este hilo. La solución sugerida marekful , aunque es muy útil, solo funciona si tiene acceso a la clave secreta (correspondiente).

Como en mi caso esta condición previa no se cumplió, eventualmente continué y cambié la hora del sistema a una fecha anterior (cuando la clave aún era válida). Esto resultó en evitar el mensaje skipped: unusable public key .

Soy consciente de que no es una buena práctica usar claves caducadas. Use esto como último recurso si la situación lo exige absolutamente.

    
respondido por el kung_fu_coder 28.02.2016 - 10:33
fuente

Lea otras preguntas en las etiquetas