pass und gpg: Kein öffentlicher Schlüssel

12

Ich benutze den Pass schon ziemlich lange. Aber nachdem ich meinen Schlüsselspeicher und meine GPG-Schlüssel auf einen anderen Computer exportiert habe, sehe ich folgende Ausgabe:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <[email protected]>
sub   2048R/74270D4A 2015-04-28

Mein Schlüssel importiert und vertrauenswürdig, aber nicht verwendbar:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

Was kann ich tun, um meinen Schlüssel wieder zu verwenden?

shved
quelle

Antworten:

11

pass verwendet gnupg2, das seinen Schlüsselring nicht mit gnupg 1.x teilt.

Importieren Sie Ihre Schlüssel erneut mit gnupg2 anstelle von gnupg. Wenn Sie Ihre Schlüssel bereits in gnupg auf dem Zielcomputer haben, führen Sie Folgendes aus:

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

Nach dem Import müssen Sie möglicherweise die Vertrauenswürdigkeit Ihres Schlüssels aktualisieren. Sie sollten eine Secret key is available.Meldung sehen, wenn der Import erfolgreich war:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <[email protected]>

Aktualisieren Sie nun die Vertrauenswürdigkeit Ihres Schlüssels:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save
Łukasz Lis
quelle
Pass (mindestens Version 1.6.3) verwendet gpgnicht gpg2. Und gpg2 ist nur eine Neugestaltung. Erst mit Version 2.1 wurden einige Änderungen vorgenommen (Kombination von öffentlichen und privaten Schlüsseln im öffentlichen Schlüsselring).
Anthon
Das gilt nicht für meine Version (1.6.5). Aus dem Quellcode: 10 GPG = "gpg" 11 export GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 welches gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Dies impliziert, dass 'pass' gpg verwendet, es sei denn, gpg2 ist auf demselben System vorhanden.
Łukasz Lis
1
Daher wird gpg verwendet, es sei denn, gpg2 ist installiert und zum Zwecke des Passierens sind diese kompatibel. Andernfalls würden Sie schreckliche Probleme bekommen, wenn Sie gpg2 einige Zeit nach Beginn der Verwendung von pass installieren (was Sie eigentlich gar nicht sollten hinterlässt manchmal unverschlüsselte Daten in Ihrem "Speicher" -Verzeichnis).
Anthon
Erstens haben Sie dies in Ihrer ersten Antwort nicht argumentiert. Zweitens haben Sie nicht auf meinen Punkt geantwortet, dass sie keinen Schlüsselbund teilen. Drittens sind sie nur insofern kompatibel, als beide Nachrichten entschlüsseln können, wenn ihnen ein geeigneter geheimer Schlüssel zugewiesen wird.
Łukasz Lis
6

Ausgangsleitung

gpg: 2048R/FA829B53: skipped: No public key

zeigt eine falsche passInitialisierung. Sie haben passmit dem Befehl initialisiert, pass init 2048R/FA829B53während Sie dies mit dem Befehl tun sollten pass init FA829B53. Um das Problem zu lösen, sollten Sie den Inhalt der Datei ~/.password-store/.gpg-idvon 2048R/FA829B53nach ändern FA829B53und Änderungen festschreiben.

PS

Alle @ Łukasz Lis-Ratschläge sind korrekt und sollten auch ausgefüllt werden. In einem anderen Fall können Sie den Pass nicht entschlüsseln:

$ pass -c test

gibt Ihnen einen Fehler: gpg: decryption failed: No secret key

Andriy
quelle
Nützlich. Es kann zu (Fehl-) Typisierung kommen pass init SomethigElseThanFirstStore.
Nikos Alexandris
0

Ich habe dies beim Erstellen eines neuen Geschäfts bemerkt und es mit einer Schlüssel-ID wie "2048R / FA829B53" initialisiert, von der ich dachte, dass es in der Vergangenheit so gemacht wurde. Bei einem alten Backup ist die .gpg_id anders.

Jetzt scheint jedoch nur der FA829B53 verwendet zu werden, und in den aktuellen Manpages verwendet der Autor seine E-Mail-Adresse.

Ich würde die Datei gpg_id überprüfen, für mich in einem neuen Geschäft ist es nur der FA829B53 und keine anderen Zeilen

Gratis
quelle
0

Überprüfen Sie, ob Ihr vertrauenswürdiger Schlüssel in der Datei identisch ist ~/.password-store/.gpg-id

m3asmi
quelle
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. - Aus der Rezension
Kevdog777
in der Tat hatte ich das gleiche Problem, ich
löse