it-swarm.com.de

Die gpg-Entschlüsselung schlägt fehl und es liegt kein Fehler mit dem geheimen Schlüssel vor

Ich habe eine gpg .key-Datei, die als Passphrase zum Entschlüsseln einer .dat.pgp-Datei verwendet wird. Die verschlüsselte .data.pgp-Datei wird mit dem folgenden Befehl erfolgreich auf einem Server mit derselben .key-Datei entschlüsselt

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

Wenn ich jedoch denselben Schlüssel auf einen anderen Server xxx_gpg.key verschiebe und denselben Befehl wie oben ausführe, wird der folgende Fehler angezeigt:

gpg: decryption failed: No secret key

BEARBEITEN:

Ich finde, dass gpg --list-secret-keys gibt einige Daten auf dem Server zurück, auf dem es funktioniert, aber für andere Server werden keine Ergebnisse zurückgegeben.

Wie können wir den geheimen Schlüssel konfigurieren?

28
fortm

Es sieht so aus, als wäre der geheime Schlüssel nicht auf dem anderen Computer vorhanden, und selbst mit der richtigen Passphrase (aus einer Datei lesen) würde dies nicht funktionieren.

Diese Optionen sollten funktionieren, um

  • Kopieren Sie entweder die Schlüsselringe (möglicherweise ist nur ein geheimer Schlüsselring erforderlich, der öffentliche Ring ist jedoch ohnehin öffentlich) auf den anderen Computer
  • Oder exportieren Sie den geheimen Schlüssel und importieren Sie ihn dann auf dem anderen Computer

Einige nützliche Optionen aus man gpg:

--export
Exportieren Sie entweder alle Schlüssel von allen Schlüsselbunden (Standardschlüsselbunde und die mit der Option --keyring Registrierten) oder, wenn mindestens ein Name angegeben ist, die des angegebenen Namens. Der neue Schlüsselring wird in STDOUT oder in die mit der Option --output Angegebene Datei geschrieben. Verwenden Sie zusammen mit --armor, Um diese Schlüssel zu verschicken.

--export-secret-keys
Entspricht --export, Exportiert jedoch stattdessen die geheimen Schlüssel.

--import
--fast-import
Schlüssel importieren/zusammenführen. Dadurch werden die angegebenen Schlüssel zum Schlüsselbund hinzugefügt. Die schnelle Version ist derzeit nur ein Synonym.

Und vielleicht

--keyring file
Datei zur aktuellen Liste der Schlüsselringe hinzufügen. Wenn die Datei mit einer Tilde und einem Schrägstrich beginnt, werden diese durch das Verzeichnis $ HOME ersetzt. Wenn der Dateiname keinen Schrägstrich enthält, wird davon ausgegangen, dass er sich im GnuPG-Ausgangsverzeichnis befindet ("~/.gnupg", wenn --homedir oder $ GNUPGHOME nicht verwendet werden).

Beachten Sie, dass dadurch ein Schlüsselring zur aktuellen Liste hinzugefügt wird. Wenn nur der angegebene Schlüsselring verwendet werden soll, verwenden Sie --keyring Zusammen mit --no-default-keyring.

--secret-keyring file
Wie --keyring, Nur für die geheimen Schlüsselringe.

17
Xen2050

Ich bin gerade auf dieses Problem gestoßen, auf der gpg-CLI in Arch Linux. Ich musste den bestehenden "gpg-agent" -Prozess beenden, dann war alles wieder normal (ein neuer gpg-agent wurde automatisch gestartet; ...).

30
Victoria Stuart

Sie können diesen Fehler auch manchmal erhalten, wenn Sie versuchen, ein Geheimnis zu entschlüsseln, während su- auf einem System mit installiertem GPG 2.x an einen anderen Benutzer weitergeleitet wurde. Dieser Fehler wurde für RHEL 6 gemeldet aber es ist kein Fix verfügbar; Dies ist anscheinend auf einige Entwurfsentscheidungen in GPG 2.x zurückzuführen. Eine im Fehlerbericht vorgeschlagene Problemumgehung besteht darin, die Entschlüsselung in einer tmux- oder Bildschirmsitzung auszuführen. Lesen Sie hier weiter .

1
jayhendren