Como re-criptografar .password-store usando a nova chave gpg

3

Estou usando o passe para gerenciar minhas senhas. Ele usa minha chave GPG para criptografar.

Minha chave expirou recentemente e eu criei uma nova.

pass deixará de criar novas palavras-passe, uma vez que a minha chave antiga expirou.

Eu posso descriptografar senhas existentes. Ele usa o ID antigo 3D1B47D3 quando descriptografar vejo gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST .

3D1B47D3 é o meu ID de chave antigo, 1F7CCC88 é o meu novo ID de chave.

Portanto, preciso criptografar novamente ~/.password-store usando minha nova chave. Os documentos dizem que usar pass init 1F7CCC88 deve fazer isso.

No entanto, recebo o erro:

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

O erro é repetido para todas as senhas.

~/.password-store/.gpg-id contém meu novo ID de chave desde a execução de init .

Eu posso criptografar arquivos manualmente usando gpg --encrypt filename usando minha nova chave.

Observe que minhas chaves e subchaves terão uma data de expiração no futuro.

pub   4096R/1F7CCC88 2016-07-02 [expires: 2018-07-28]
uid                  Kris Leech <[email protected]>
sub   4096R/3D1B47D3 2016-07-02 [expires: 2018-07-28]
sub   2048R/E77481E9 2016-07-28 [expires: 2018-07-28]
    
por Kris 07.08.2017 / 12:45

2 respostas

-1

Parece que o pass está usando gpg2, você criou as chaves usando gpg e há algo não suportado no gpg2 (md5 obsoleto?).

por exemplo. descriptografar com trabalhos em gpg:

$ gpg -d --quiet secret.gpg 

You need a passphrase to unlock the secret key for
user: "bot three (third bot) <[email protected]>"
2048-bit RSA key, ID 2A8EA0F6, created 2017-08-24 (main key ID 2003591B)

something much longer then blah

e com o gpg2 não:

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

Renomeando as forças do gpg2 passam para usar o gpg:

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

O que você pode fazer é:

  1. Renomeie o gpg2.
  2. Crie uma chave gpg2.
  3. Reinicie o repositório de senhas usando a nova chave gerada por gpg2 para criptografar novamente.
  4. Renomeie o gpg2 de volta para o gpg2.

Deve funcionar novamente neste momento. A partir daqui, use gpg2, não gpg.

hth.

    
por 24.08.2017 / 23:10
1

Além da resposta, aceitei que queria postar outra opção. Você pode apenas importar sua chave existente para o 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
    
por 06.11.2017 / 11:29