pass and gpg: Pas de clé publique

13

J'utilise le pass depuis assez longtemps; mais après avoir exporté mes clés de stockage et gpg vers une autre machine, je vois la sortie suivante:

$ 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

Ma clé a été importée et approuvée, mais pas utilisable:

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

Que puis-je faire pour réutiliser ma clé?

rasé
la source

Réponses:

12

pass utilise gnupg2, qui ne partage pas son trousseau de clés avec gnupg 1.x.

Importez à nouveau vos clés en utilisant gnupg2 au lieu de gnupg. Si vous avez déjà vos clés dans gnupg sur l'exécution de la machine cible:

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

Après l'importation, vous devrez peut-être mettre à jour l'approbation de votre clé. Vous devriez voir un Secret key is available.message si l'importation a réussi:

$ 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]>

Mettez à jour la confiance sur votre clé:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save
Łukasz Lis
la source
pass (au moins la version 1.6.3) n'utilise gpgpas gpg2. Et gpg2 est juste une refonte. Ce n'est qu'avec la version 2.1 que certains changements sont venus (combinant les clés publiques et privées dans le trousseau de clés publiques.
Anthon
Ce n'est pas vrai pour ma version (1.6.5). A partir du code source: 10 GPG = "gpg" 11 export GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 dont gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Cela implique que 'pass' utilise gpg à moins que gpg2 ne soit présent sur le même système.
Łukasz Lis
1
il utilise donc gpg à moins que gpg2 soit installé et aux fins de pass, ceux-ci sont compatibles, sinon vous auriez des problèmes horribles si vous arriviez à installer gpg2 quelque temps après avoir commencé à utiliser pass (ce que vous ne devriez pas en premier lieu car il laisse parfois des données non chiffrées dans votre répertoire "stockage").
Anthon
Tout d'abord, ce n'est pas ce que vous avez soutenu dans votre première réponse. Deuxièmement, vous n'avez pas répondu à mon argument concernant le fait qu'ils ne partagent pas de trousseau de clés. Troisièmement, ils ne sont compatibles que dans la mesure où les deux peuvent décrypter les messages s'ils reçoivent une clé secrète appropriée.
Łukasz Lis
7

Ligne de sortie

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

montre une mauvaise passinitialisation. Vous avez initialisé passavec la commande pass init 2048R/FA829B53alors que vous devez le faire avec la commande pass init FA829B53. Pour résoudre le problème , vous devez modifier le contenu du fichier ~/.password-store/.gpg-idde 2048R/FA829B53la FA829B53et valider les modifications.

PS

Tous les conseils de @ Łukasz Lis sont corrects et vous devez également les compléter. Dans les autres cas, vous ne pourrez pas décrypter le pass:

$ pass -c test

vous donnera une erreur: gpg: decryption failed: No secret key

Andriy
la source
Utile. Cela peut arriver au type (incorrect) pass init SomethigElseThanFirstStore.
Nikos Alexandris
0

J'ai remarqué cela lors de la création d'un nouveau magasin et je l'ai initialisé avec un identifiant de clé comme "2048R / FA829B53", ce que je pensais être la façon dont cela a été fait dans le passé, et en regardant une ancienne sauvegarde, le .gpg_id est différent.

Cependant, il semble maintenant que le FA829B53 soit utilisé, et dans les pages de manuel actuelles, l'auteur utilise son adresse e-mail.

Je vérifierais le fichier gpg_id, pour moi dans un nouveau magasin c'est juste le FA829B53 et pas d'autres lignes

Gratis
la source
0

Vérifiez si votre clé de confiance est la même dans le fichier ~/.password-store/.gpg-id

m3asmi
la source
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - De l'avis
Kevdog777
en effet j'ai eu le même problème, je le
résous