Lorsque j'essaie de crypter des fichiers, j'obtiens l'erreur suivante dans la fenêtre de l'éditeur KGpg:
Le cryptage a échoué avec le code d'erreur 2
Sur la ligne de commande, j'obtiens:
$ 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.
Cela fonctionnait à la fois avec l'éditeur et sur la ligne de commande avec la même clé. Le Current recipients:
est vide. Pourquoi donc?
MISE À JOUR:
Lorsque vous essayez de spécifier l'ID utilisateur sur la ligne de commande à l'aide de -r
option, j'obtiens ce qui suit:
$ gpg -r [email protected] --encrypt file-to-encrypt
gpg: [email protected]: skipped: unusable public key
gpg: file-to-encrypt: encryption failed: unusable public key
Info:
$ 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
J'ai compris quel était le problème et la solution, alors je donne une réponse détaillée si quelqu'un rencontre le même problème, cela peut être utile.
Le problème est quelque peu ambigu, aucun message d'erreur vraiment informatif n'est donné.
Il s'est avéré que la sous-clé de chiffrement était expirée. Étrangement, gpg --list-keys
n'a PAS montré la sous-clé expirée !! Une fois l'expiration de la sous-clé prolongée, elle a été incluse dans la sortie de gpg --list-keys
.
De plus, KGpg
ne montre en aucune façon que la sous-clé a expiré ni ne permet de prolonger l'expiration de la sous-clé (seule l'expiration de la clé principale peut être modifiée).
La sortie de gpg --list-keys
avant la solution (j'ai changé de données personnelles):
$ 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]
Rien de plus.
Cependant, gpg --edit 5E04B919
a montré que la sous-clé a expiré
$ 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>
Après quelques recherches sur Google, j'ai trouvé cette archive de liste de diffusion qui m'a pointé dans la bonne direction pour prolonger l'expiration de la sous-clé en utilisant la ligne de commande gpg
:
http://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html
J'ai suivi les instructions et prolongé l'expiration de la sous-clé. Après ça gpg --list-keys
a donné une sortie différente:
$ 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]
Après cela, tout était revenu à la normale, je pouvais crypter des fichiers, etc.
Dans mon cas, j'ai importé ma clé (gpg --import path/to/key
) généré sur une autre machine.
Mais je ne pouvais pas l'utiliser car il n'était pas fiable.
J'ai exécuté gpg --edit-key "MY KEY ID" trust
et configurez le niveau de confiance 5.
Après cela, ma clé est devenue fiable et maintenant je peux l'utiliser pour le cryptage.
Vous devez spécifier la clé que vous souhaitez utiliser pour le chiffrement, donc la commande dont vous avez besoin dans ce cas est gpg -r [email protected] --encrypt file-to-encrypt
.
J'ai rencontré le même problème (clé publique expirée) et suis tombé sur ce fil. La solution suggérée marekful , bien que très utile, ne fonctionne que si vous avez accès à la clé secrète (correspondante).
Étant donné que dans mon cas, cette condition préalable n'était pas remplie, j'ai finalement décidé de modifier l'heure de mon système à une date antérieure (lorsque la clé était toujours valide). Cela a permis d'éviter le skipped: unusable public key
message.
Je suis conscient que ce n'est pas une bonne pratique d'utiliser des clés expirées. Utilisez-le en dernier recours si la situation l'exige absolument.