Jak ponownie zaszyfrować .password-store za pomocą nowego klucza gpg

6

Używam przepustkę do zarządzać hasłami. Używa mojego klucza GPG do szyfrowania.

Mój klucz wygasł niedawno i utworzyłem nowy.

pass nie będzie już tworzyć nowych haseł, odkąd wygasł mój stary klucz.

Mogę odszyfrować istniejące hasła. Używa starego ID, 3D1B47D3jak podczas odszyfrowywania, które widzę gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST.

3D1B47D3to mój stary identyfikator klucza, 1F7CCC88to mój nowy identyfikator klucza.

Dlatego muszę ponownie zaszyfrować ~/.password-storeprzy użyciu mojego nowego klucza. Dokumenty mówią, że używanie pass init 1F7CCC88powinno to zrobić.

Jednak dostaję błąd:

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

Błąd powtarza się dla każdego hasła.

~/.password-store/.gpg-idzawiera mój nowy identyfikator klucza od uruchomienia init.

Mogę szyfrować pliki ręcznie, gpg --encrypt filenameużywając mojego nowego klucza.

Uwaga: wszystkie moje klucze i podklucze mają datę ważności w przyszłości.

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]
Kris
źródło
1
Patrzyłem już na to pytanie, ich problem polegał na tym, że nie zmienili także terminu ważności podkluczy. Ale o ile widzę, to nie jest mój problem. Mogę szyfrować / deszyfrować poza passużyciem mojego nowego klucza.
Kris,

Odpowiedzi:

0

Wygląda na to, że pass używa gpg2, klucze zostały utworzone za pomocą gpg, a w gpg2 jest coś nieobsługiwanego (MD5 przestarzałe?).

np. deszyfrowanie przy pomocy 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

a gpg2 nie:

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

Zmiana nazwy gpg2 wymusza przejście do używania gpg:

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

Co możesz zrobić to:

  1. Zmień nazwę gpg2.
  2. Utwórz klucz gpg2.
  3. Uruchom ponownie magazyn haseł przy użyciu nowego klucza wygenerowanego przez gpg2 w celu ponownego zaszyfrowania.
  4. Zmień nazwę gpg2 z powrotem na gpg2.

Powinien działać ponownie w tym momencie. Stąd użyj gpg2, a nie gpg.

hth

ColinSeligSmith
źródło
2

Oprócz odpowiedzi, którą zaakceptowałem, chciałem opublikować inną opcję. Możesz po prostu zaimportować istniejący klucz do 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
Kris
źródło