2015-02-04 5 views
12

Ich habe eine gpg .key-Datei, die als Passphrase zum Entschlüsseln einer .dat.pgp-Datei verwendet wird. Die verschlüsselte .data.pgp Datei auf einem Server mit dem gleichen .key-Datei mit folgendem BefehlGPG-Entschlüsselung fehlgeschlagen mit keinen geheimen Schlüssel Fehler

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

erfolgreich entschlüsselt wird aber, wenn ich denselben Schlüssel auf einem anderen Server xxx_gpg.key bewegen und denselben oben Befehl ausführen, bekomme ich folgenden Fehler -

gpg: decryption failed: No secret key 

EDIT:

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

Wie können wir geheime Schlüssel konfigurieren

+0

Genau dieselbe Version von gpg auf jeder Maschine? – Xen2050

+0

gleiche gpg-Version auf beiden Plätzen - 2.0.14 – fortm

+0

hmmm. Anscheinend liest "--passphrase-fd" nur die "erste Zeile", sehen diese auf jedem System identisch aus? Vielleicht wird sie von einer anderen Shell anders konvertiert oder geroutet? Habe gerade einen Fall gesehen, bei dem Backslashes von "gelesen" werden ... – Xen2050

Antwort

10

Sieht aus wie der geheime Schlüssel nicht auf der anderen Maschine, also auch mit dem richtigen Passwort (Lesen aus einer Datei) es nicht funktionieren würde.

sollten Diese Optionen arbeiten,

  • Entweder die keyrings kopieren (vielleicht nur geheimen Schlüsselbund erforderlich, aber die öffentliche Ring ist ohnehin öffentlich) auf die andere Maschine
  • Oder exportieren Sie die geheimen Schlüssel & dann importieren es auf der anderen Maschine

einige nützliche suchen Optionen aus man gpg:

--export
exportieren Entweder alle Schlüssel aus allen Schlüsselbunden (Standard keyrings und diejenigen über Option --keyring registriert) oder wenn mindestens ein Name gegeben wird, diejenigen des Vornamens. Der neue Schlüsselring wird in STDOUT oder in die Datei mit der Option --output geschrieben. Verwenden Sie diese Schlüssel zusammen mit --armor bis .

--export-secret-keys
Gleiche wie --export, sondern exportiert den geheimen Schlüssel statt.

--import
--fast-import
Import/Schlüssel fusionieren. Dies fügt die angegebenen Schlüssel dem Schlüsselring hinzu. Die schnelle Version ist derzeit nur ein Synonym.

Und vielleicht

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

Beachten Sie, dass dadurch der aktuellen Liste ein Schlüsselring hinzugefügt wird.Wenn die Absicht ist, den angegebenen Schlüsselring allein zu verwenden, verwenden Sie --keyring zusammen mit --no-default-keyring.

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

+1

Kurzversion: # Schlüssel von einem anderen Computer importieren: gpg --export $ {ID}> public.key gpg --export-geheimer Schlüssel $ {ID}> private.key # Kopieren Sie diese Dateien auf einen anderen Rechner und dort gpg --import public.key gpg --import private.key # von https://unix.stackexchange.com/questions/184947/how-to-import-secret-gpg-key-copied-from -on-machine-to-another –

+1

Das obige ist genau das, was ich versucht habe und was mich zu der Fehlermeldung führte, die OP gepostet hat. – aioobe

+0

@aioobe Der richtige (geheime) Schlüssel darf nicht zum anderen gpg gelangen oder von ihm gesehen werden. Meinst du, du hast Yaroslav Nikitenkos Befehle ausprobiert? Ich habe sie nicht getestet, aber sie sehen * gut aus, solange '$ ID' richtig ist. Ich würde stattdessen "output" versuchen, aber das sollte nicht wichtig sein. Exportieren des geheimen Schlüssels und dann Importieren * sollte * funktionieren, erscheint er in '--list-keys' (-k oder -K)? Oder kopiere die ganze (n) Schlüsselbunddatei (en) und benutze 'keyring' definitiv sollte ... Ich hatte Probleme damit, dass gpg-agent Passphrasen nicht einmal mit' --passphrase-Datei 'liest oder '--quiet ersetzt '&' --batch' mit einigen '-v's – Xen2050

13

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

+1

Das war genau mein Problem, und beheben - ich habe gpg eine Weile ohne den Agenten verwendet, anscheinend ist es jetzt standardmäßig aktiviert? Vielleicht in Ubuntu 17.04, die ich jetzt (zufällig) laufe. :-) Ich denke, es ist immer noch fehlerhaft. – moodboom

+3

Gleiches Problem und beheben für mich auf macOS. Eine vorherige Entschlüsselung ging irgendwie schief, was irgendwie die obigen Fehler verursachte. – SamHH

+1

Erstaunlich !!! Auch meine Probleme behoben, danke – timothyclifford

Verwandte Themen