J'essaie de copier ma clé gpg d'une machine à une autre.
Je fais:
gpg --export ${ID} > public.key
gpg --export-secret-key ${ID} > private.key
Déplacez les fichiers vers une nouvelle machine, puis:
gpg --import public.key
gpg: nyckel [ID]: public key [Name, e-mail] was imported
gpg: Total number of treated keys: 1
gpg: imported: 1 (RSA: 1)
gpg --allow-secret-key-import private.key
sec [?]/[ID] [Creation date] [Name, e-mail]
ssb [?]/[SUB-ID] [Creation date]
Tout me semble bien, mais alors:
$ gpg -d [file].gpg
gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date]
[Name, e-mail]
gpg: decryption failed: secret key not accessible
Ainsi, le message d'erreur indique que le fichier a été chiffré avec [SUB-ID], que l'importation de clé secrète semble indiquer qu'il a importé. (Le [SUB-ID] dans les deux messages est le même).
Je fais donc clairement quelque chose de mal, mais je ne sais pas quoi.
Vous devez ajouter --import
à la ligne de commande pour importer la clé privée. Vous n'avez pas besoin d'utiliser le --allow-secret-key-import
drapeau. Selon la page de manuel: "Il s'agit d'une option obsolète qui n'est utilisée nulle part."
gpg --import private.key
Ci-dessus n'est qu'une réponse partielle. La réponse complète est:
gpg --import private.key
Étant donné le KEYID (par exemple FA0339620046E260
) de la sortie:
gpg --edit-key {KEY} trust quit
# enter 5<RETURN> (I trust ultimately)
# enter y<RETURN> (Really set this key to ultimate trust - Yes)
OU utilisez la commande automatisée ci-dessous:
expect -c "spawn gpg --edit-key {KEY} trust quit; send \"5\ry\r\"; expect eof"
Enfin, vérifiez que la clé est désormais approuvée avec [ultimate]
au lieu de [unknown]
gpg --list-keys
J'importais depuis une sauvegarde qui avait une ancienne version de gpg. Étant donné que l'ancien ordinateur n'était pas disponible, seule la sauvegarde, je ne pouvais pas l'exporter d'abord. C'est ce qui a fonctionné pour moi.
gpg --import old_home_dir/.gnupg/pubring.gpg
gpg --import old_home_dir/.gnupg/secring.gpg
Si vous souhaitez pouvoir importer des clés secrètes sans saisir immédiatement la phrase secrète, utilisez le --batch
option.
Pour vérifier les clés publiques:
gpg --list-keys
Pour vérifier les clés secrètes:
gpg --list-secret-keys