pass and gpg: Немає відкритого ключа


13

Я використовую пропуск досить тривалий час; але після експорту ключів для зберігання ключів та gpg на іншу машину я бачу такий вихід:

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

Мій ключ імпортований і надійний, але не корисний:

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

Що я можу зробити, щоб знову використовувати свій ключ?

Відповіді:


12

pass використовує gnupg2, який не ділиться його брелоком з gnupg 1.x.

Імпортуйте свої ключі знову, використовуючи gnupg2 замість gnupg. Якщо у вас уже є ключі в gnupg на цільовій машині:

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

Після імпорту вам може знадобитися оновити довіру до вашого ключа. Secret key is available.Якщо імпорт був успішним, ви побачите повідомлення:

$ 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) <shved@lvk.cs.msu.su>

Тепер оновіть довіру до свого ключа:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save

пропуск (принаймні версія 1.6.3) використовує gpgне gpg2. І gpg2 - це лише перепроектування. Лише з версією 2.1 відбулися деякі зміни (поєднання відкритих та приватних ключів у відкритому доступі до ключів.
Anthon,

Це не відповідає дійсності моєї версії (1.6.5). З вихідного коду: 10 GPG = "gpg" 11 експорт GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12, який gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Це означає, що 'pass' використовує gpg, якщо gpg2 не присутній у тій же системі.
Łukasz Lis

1
тому він використовує gpg, якщо gpg2 не встановлений, і для цілей передачі вони сумісні, інакше у вас виникнуть жахливі проблеми, якщо вам трапиться встановити gpg2 через деякий час після того, як ви почали використовувати пропуск (чого ви не повинні в першу чергу, як це іноді залишає незашифровані дані у вашому каталозі "зберігання").
Антон

По-перше, це не те, що ви доводили у своїй першій відповіді. По-друге, ви не відповіли на мою думку про те, що вони не діляться брелоками. По-третє, вони сумісні лише тим, що обидва можуть розшифровувати повідомлення, якщо їм надано належний секретний ключ.
Łukasz Lis

7

Вихідна лінія

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

показує неправильну passініціалізацію. Ви ініціалізувалися passз командою, pass init 2048R/FA829B53тоді як ви повинні робити це з командою pass init FA829B53. Щоб вирішити проблему, слід змінити вміст файлу ~/.password-store/.gpg-idз 2048R/FA829B53на FA829B53та здійснити зміни.

PS

Всі поради @ Lukasz Lis є правильними, і ви також повинні виконати їх. В іншому випадку ви не зможете розшифрувати пропуск:

$ pass -c test

дасть вам помилку: gpg: decryption failed: No secret key


Корисно. Це може статися з типом (неправильно) pass init SomethigElseThanFirstStore.
Нікос Олександріс

0

Я помітив це під час створення нового магазину і ініціалізував його з ідентифікатором ключа типу "2048R / FA829B53", який я вважав, як це робилося в минулому, і дивлячись на стару резервну копію .gpg_id відрізняється.

Однак зараз здається, що просто використовується FA829B53, і на поточних сторінках автора автор використовує свою електронну адресу.

Я перевірив би файл gpg_id, для мене у свіжому магазині це просто FA829B53 та інших рядків


0

Перевірте, чи у вашому файлі такий самий надійний ключ ~/.password-store/.gpg-id


Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх дописом. - З огляду
Kevdog777

Дійсно, у мене була така ж проблема, я
вирішу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.