4

Я использую пароль для управления своими паролями. Он использует мой ключ GPG для шифрования.

Мой ключ недавно истек, и я создал новый.

pass больше не будет создавать новые пароли, так как мой старый ключ истек.

Я могу расшифровать существующие пароли. Он использует старый идентификатор 3D1B47D3 как при расшифровке я вижу gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST .

3D1B47D3 - мой старый идентификатор ключа, 1F7CCC88 - мой новый идентификатор ключа.

Поэтому мне нужно повторно зашифровать ~/.password-store используя мой новый ключ. Документы говорят, что использование pass init 1F7CCC88 должно сделать это.

Однако я получаю ошибку:

gpg: [stdin]: encryption failed: Unusable public key
gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST`. 

Ошибка повторяется для каждого пароля.

~/.password-store/.gpg-id содержит мой новый идентификатор ключа с момента запуска init .

Я могу зашифровать файлы вручную, используя gpg --encrypt filename используя мой новый ключ.

Обратите внимание, что мои ключи и подразделы имеют дату истечения в будущем.

pub   4096R/1F7CCC88 2016-07-02 [expires: 2018-07-28]
uid                  Kris Leech <kris.leech@gmail.com>
sub   4096R/3D1B47D3 2016-07-02 [expires: 2018-07-28]
sub   2048R/E77481E9 2016-07-28 [expires: 2018-07-28]

2 ответа2

1

В дополнение к ответу, который я принял, я хотел опубликовать еще один вариант. Вы можете просто импортировать существующий ключ в gpg2.

gpg --list-keys
gpg --export [ID] > public.key
gpg --export-secret-key [ID] > private.key
gpg2 --import public.key
gpg2 --import private.key
rm public.key private.key
-1

Похоже, что pass использует gpg2, вы создали ключи, используя gpg, и в gpg2 что-то не поддерживается (md5 устарело?).

Например, расшифровка с помощью gpg работает:

$ gpg -d --quiet secret.gpg 

You need a passphrase to unlock the secret key for
user: "bot three (third bot) <bot3@blah.com>"
2048-bit RSA key, ID 2A8EA0F6, created 2017-08-24 (main key ID 2003591B)

something much longer then blah

а с gpg2 нет:

$ gpg2 -d --quiet secret.gpg 
gpg: decryption failed: No secret key

Переименование gpg2 заставляет перейти на использование gpg:

# mv /usr/bin/gpg2 /usr/bin/gpg2-css
$ pass show test/secret
something much longer then blah

Что вы можете сделать, это:

  1. Переименуйте gpg2.
  2. Создайте ключ gpg2.
  3. Перезапустите хранилище паролей, используя новый сгенерированный ключ gpg2 для повторного шифрования.
  4. Переименуйте gpg2 обратно в gpg2.

Должен работать снова на этом этапе. Отсюда используйте gpg2, а не gpg.

НТН.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .