web-dev-qa-db-fra.com

Le décryptage gpg échoue sans erreur de clé secrète

J'ai un fichier gpg .key utilisé comme mot de passe pour décrypter un fichier .dat.pgp. Le fichier crypté .data.pgp est décrypté avec succès sur un serveur avec le même fichier .key à l'aide de la commande suivante

cat xxx_gpg.key | /usr/bin/gpg --batch --quiet -o xxx.dat --passphrase-fd O -d xxx.dat.pgp

Mais, lorsque je déplace la même clé vers un autre serveur xxx_gpg.key et que j'exécute la commande ci-dessus, le message d'erreur suivant s'affiche:

gpg: decryption failed: No secret key

MODIFIER:

Je trouve que gpg --list-secret-keys renvoie certaines données sur le serveur sur lequel cela fonctionne, mais aucun résultat n'est renvoyé pour un autre serveur.

Comment pouvons-nous configurer la clé secrète

28
fortm

On dirait que la clé secrète n'est pas sur l'autre ordinateur, donc même avec le mot de passe composé correct (lu dans un fichier), cela ne fonctionnerait pas.

Ces options devraient fonctionner pour

  • Soit copier les trousseaux de clés (peut-être que seul le trousseau de clés secret est requis, mais la sonnerie publique est publique de toute façon) sur l’autre machine.
  • Ou exportez la clé secrète puis importez-la sur l'autre machine

Quelques options utiles à partir de man gpg:

--export
Exportez toutes les clés de tous les trousseaux (les trousseaux par défaut et ceux enregistrés via l’option --keyring), ou si au moins un nom est donné, ceux du même prénom. Le nouveau trousseau de clés est écrit dans STDOUT ou dans le fichier fourni avec l'option --output. Utiliser avec --armor pour envoyer ces clés.

--export-secret-keys
Pareil que --export, mais exporte les clés secrètes à la place.

--import
--fast-import
Touches d'importation/fusion. Cela ajoute les clés données au trousseau. La version rapide est actuellement juste un synonyme.

Et peut-être

--keyring file
Ajouter un fichier à la liste actuelle des trousseaux de clés. Si le fichier commence par un tilde et une barre oblique, ceux-ci sont remplacés par le répertoire $ HOME. Si le nom de fichier ne contient pas de barre oblique, il est supposé se trouver dans le répertoire principal de GnuPG ("~/.gnupg" si --homedir ou $ GNUPGHOME n'est pas utilisé).

Notez que cela ajoute un trousseau de clés à la liste actuelle. Si l'intention est d'utiliser uniquement le trousseau spécifié, utilisez --keyring de même que --no-default-keyring.

--secret-keyring file
Pareil que --keyring mais pour les porte-clés secrets.

17
Xen2050

Je viens de rencontrer ce problème, sur la CLI gpg dans Arch Linux. J'avais besoin de tuer le processus "gpg-agent" existant, puis tout était revenu à la normale (un nouveau gpg-agent auto-lancé; ...).

30
Victoria Stuart

Vous pouvez également parfois obtenir cette erreur si vous essayez de déchiffrer un secret alors que su- est redirigé vers un autre utilisateur sur un système sur lequel GPG 2.x est installé. Ce bogue a été signalé sur RHEL 6 mais il n'y a pas de correctif disponible; apparemment, cela est dû à certaines décisions de conception dans GPG 2.x. Une solution de contournement suggérée dans le rapport de bogue consiste à exécuter le déchiffrement dans une session tmux ou screen. Plus de lecture ici .

1
jayhendren