gpg --encrypt non riesce

28

Durante il tentativo di crittografare i file, ottengo il seguente errore nella finestra dell'editor di KGpg:

The encryption failed with error code 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.

Questo funzionava sia con l'editor che sulla riga di comando con la stessa chiave. Current recipients: è vuoto. Perché è così?

UPDATE:

Quando provo a specificare l'ID utente sulla riga di comando usando l'opzione -r , ottengo il seguente:

$ 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
    
posta marekful 13.03.2014 - 12:51
fonte

4 risposte

31

Ho capito quale fosse il problema e la soluzione, quindi fornisco 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 veramente 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 sia scaduta né consente di estendere la scadenza della sottochiave (è possibile modificare solo la scadenza della chiave principale).

L'output di gpg --list-keys prima della soluzione (ho cambiato 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ù.

Tuttavia, 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 di mailing list che mi indicava la giusta direzione per estendere la scadenza della sottochiave usando gpg dalla riga di comando:

link

Ho seguito le istruzioni e ho esteso la scadenza della sottochiave. Dopo questo 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à, potrei crittografare i file, ecc.

    
risposta data 13.03.2014 - 16:38
fonte
6

Nel mio caso ho importato la mia chiave ( gpg --import path/to/key ) generata su un altro computer.

Ma non potevo usarlo perché non era sicuro.

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

Dopo che la mia chiave è diventata affidabile e ora posso usarla per la crittografia.

    
risposta data 01.03.2017 - 00:49
fonte
2

Devi specificare la chiave che desideri utilizzare per la crittografia, quindi il comando che ti serve in questo caso è gpg -r [email protected] --encrypt file-to-encrypt .

    
risposta data 13.03.2014 - 13:11
fonte
1

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

Dal momento che nel mio caso questa precondizione non reggeva, alla fine sono andato avanti e ho cambiato il mio tempo di sistema in una data precedente (quando la chiave era ancora valida). Ciò ha comportato l'evitamento del messaggio skipped: unusable public key .

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

    
risposta data 28.02.2016 - 10:33
fonte

Leggi altre domande sui tag