it-swarm.dev

gpg --encrypt non riesce

Quando provo a crittografare i file, ottengo il seguente errore nella finestra dell'editor KGpg:

La crittografia non è riuscita con il codice di errore 2

Sulla riga di comando ottengo:

$ 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.

In passato funzionava sia con l'editor che sulla riga di comando con la stessa chiave. Il Current recipients: è vuoto. Perché?

PDATE:

Quando si tenta di specificare l'ID utente sulla riga comandi utilizzando -r opzione, ottengo quanto segue:

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

Informazioni:

$ 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
34
marekful

Ho capito qual era il problema e la soluzione, quindi do una risposta con i dettagli se qualcuno dovesse imbattersi nello stesso problema, potrebbe essere utile.

Il problema è alquanto ambiguo, non viene fornito alcun messaggio di errore informativo.

Si è scoperto che la sottochiave di crittografia era scaduta. Stranamente, gpg --list-keys NON ha mostrato la sottochiave scaduta !! Una volta estesa la scadenza della sottochiave, è stata inclusa nell'output di gpg --list-keys.

Inoltre, KGpg non mostra in alcun modo che la sottochiave è scaduta né consente di prolungare la scadenza della sottochiave (è possibile modificare solo la scadenza della chiave principale).

L'output di gpg --list-keys prima della soluzione (ho modificato i dettagli personali):

$ 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]

Niente di più.

Però, gpg --edit 5E04B919 ha mostrato che la sottochiave è scaduta

$ 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>

Dopo alcune ricerche su Google, ho trovato questo archivio della mailing list che mi ha indicato la giusta direzione per estendere la scadenza della sottochiave usando la riga di comando gpg:

http://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html

Ho seguito le istruzioni e ho prorogato la scadenza della sottochiave. Dopodichè gpg --list-keys ha dato un output diverso:

$ 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]

Dopo questo, tutto è tornato alla normalità, ho potuto crittografare i file, ecc.

38
marekful

Nel mio caso ho importato la mia chiave (gpg --import path/to/key) generato su un'altra macchina.

Ma non potevo usarlo perché non era affidabile.

Ho eseguito gpg --edit-key "MY KEY ID" trust e imposta il livello di affidabilità 5.

Dopodiché la mia chiave è diventata affidabile e ora posso usarla per la crittografia.

6
mixel

È necessario specificare la chiave che si desidera utilizzare per la crittografia, quindi il comando necessario in questo caso è gpg -r [email protected] --encrypt file-to-encrypt.

2
Tim Lamballais

Ho riscontrato lo stesso problema (chiave pubblica scaduta) e ho riscontrato questo thread. La soluzione ha suggerito marekful , sebbene molto utile, funziona solo se si ha accesso alla chiave segreta (corrispondente).

Poiché nel mio caso questa condizione preliminare non era valida, alla fine sono andato avanti e ho cambiato l'ora del mio sistema con una data precedente (quando la chiave era ancora valida). Ciò ha comportato l'evitamento di skipped: unusable public key Messaggio.

Sono consapevole che non è una buona pratica usare chiavi scadute. Usalo come ultima risorsa se la situazione lo richiede assolutamente.

1
kung_fu_coder