пройти и 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 export GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 which gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Это означает, что 'pass' использует gpg, если gpg2 не присутствует в той же системе.
Лукаш Лис,
1
поэтому он использует gpg, если gpg2 не установлен и для целей pass они совместимы, в противном случае у вас возникнут ужасные проблемы, если вам случится установить gpg2 через некоторое время после того, как вы начнете использовать pass (что не следует делать в первую очередь, так как иногда оставляет незашифрованные данные в вашем каталоге «хранилища»).
Anthon
Во-первых, это не то, что вы утверждали в своем первом ответе. Во-вторых, вы не ответили на мой вопрос о том, что они не делятся брелками. В-третьих, они совместимы только в том смысле, что оба могут расшифровывать сообщения, если им дан правильный секретный ключ.
Лукаш Лис,
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

Все советы @ Łukasz 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

m3asmi
источник
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом. - Из обзора
Kevdog777
действительно у меня была такая же проблема, я
решаю