Seguendo il tutorial di Debian sulle sottochiavi mi piace creare un portachiavi con una chiave primaria (SC) e due sottochiavi (E e S) e quindi esportare e rimuovere la chiave primaria segreta. Tuttavia faccio fatica a reimportare la chiave segreta esportata nel caso in cui voglio revocare e rinnovare le sottochiavi.
Configurazione iniziale con due sottochiavi
pub 1024R/158C07CE created: 2015-09-21 expires: never usage: SC
trust: ultimate validity: ultimate
sub 1024R/588AC467 created: 2015-09-21 expires: never usage: E
sub 1024R/3637E2AA created: 2015-09-21 expires: never usage: S
[ultimate] (1). Foobar
$ gpg -K
sec 1024R/158C07CE 2015-09-21
uid Foobar
ssb 1024R/588AC467 2015-09-21
ssb 1024R/3637E2AA 2015-09-21
# sec means the secret is still there
Esporta solo chiave primaria, esporta solo le sottochiavi, rimuovi le chiavi segrete e reimporta le sottochiavi
$ gpg --export-secret-keys 158C07CE! > primary.sec
# secret-keys with exclamation mark just exports primary keypair
$ gpg --export-secret-subkeys 158C07CE > subs.sec
$ gpg --delete-secret-keys 158C07CE
$ gpg --import subs.sec
$ gpg -K
sec# 1024R/158C07CE 2015-09-21
uid Foobar
ssb 1024R/588AC467 2015-09-21
ssb 1024R/3637E2AA 2015-09-21
# sec# means the secret key is missing (this is what I want)
Ora voglio reimportare la chiave segreta primaria
$ gpg --allow-secret-key-import --import primary.sec
gpg: key 158C07CE: already in secret keyring
gpg: Total number processed: 1
gpg: secret keys read: 1
gpg: secret keys unchanged: 1
Che cosa? Perché?
$ gpg -K
sec# 1024R/158C07CE 2015-09-21
uid Foobar
ssb 1024R/588AC467 2015-09-21
ssb 1024R/3637E2AA 2015-09-21
Qui è utile articolo Stackexchange su cui le chiavi GPG esporta nel qual caso