Odwołaj klucz PGP

19

Podczas gry z GPG (i próbując znaleźć bezpieczny sposób na przechowywanie mojego certyfikatu odwołania, aby nikt inny nie mógł go użyć), przypadkowo odwołałem mój klucz PGP.

Cofnięcie miało charakter wyłącznie lokalny; nie wysłano do serwera kluczy, więc byłem pewien, że będzie sposób, aby go cofnąć ... ale nic nie znalazłem. Nawet usunięcie klucza i ponowne zaimportowanie go nie pomogło; nadal był wyświetlany jako odwołany. Na koniec usunąłem cały brelok i ponownie zaimportowałem wszystko, co zadziałało. Ale musi być lepszy sposób ...

Więc; jak cofnąć klucz PGP w GPG?

Gdzie jest przechowywane odwołanie i dlaczego nie zostało usunięte, gdy usunąłem klucz z mojego klucza?

W przypadku, gdy robi to jakąkolwiek różnicę, używam GPG na OS X z pakietem GPGTools .

Cezar
źródło
@ iWizardPro dzięki, faktycznie się z tym spotkałem, ale wydaje mi się, że nie mam (ani nie jestem w stanie znaleźć) gpgsplitnarzędzia. Jakieś pomysły?
Caesar
Z jakiego systemu operacyjnego korzystasz? Mój gpgsplit znajduje się w / usr / bin / gpgsplit dla Ubuntu.
Ryan Tse
OS X z GPGTools ( gpgtools.org ). mój gpg2jest w /usr/local/MacGPG2/bin/gpg2(link z /usr/local/bin/gpg2), ale nie mogę znaleźć śladu gpgsplit. Wydaje mi się, że można to zrobić z Ubuntu, ale do tego momentu usunięcie i przywrócenie mojego pęku kluczy jest prawdopodobnie łatwiejszą opcją ... Czy wiesz, dlaczego (i gdzie) odwołanie jest przechowywane po usunięciu samej pary kluczy?
Caesar
1
Homebrew wprowadza GnuPG gpgslit. Możesz zainstalować pakiet za pomocą brew install gnupg.
Jens Erat

Odpowiedzi:

21

Okazuje się, że możliwe jest (i stosunkowo proste) usunięcie i ponowne zaimportowanie klucza, pod warunkiem, że znajduje się on na serwerze kluczy (i oczywiście pod warunkiem, że odwołanie nie zostało wysłane do serwera kluczy).

Oto, co znalazłem do pracy ( THEKEYIDjest to krótki identyfikator klucza):

  1. Usuń klucz publiczny w następujący sposób ( --expertopcja umożliwia usunięcie klucza publicznego, gdy klucz prywatny jest przechowywany):
    gpg --expert --delete-key THEKEYID

  2. Potwierdź, naciskając:
    y

  3. Pobierz ponownie klucz publiczny z serwera kluczy:
    gpg --keyserver subkeys.pgp.net --recv-keys THEKEYID

Gotowy!

Prawdopodobnie można to również zrobić z lokalnej (przed odwołaniem) kopii zapasowej klucza publicznego, używając gpg --import public.keyzamiast trzeciego polecenia.

Po prostu usunięcie całego klucza (publicznego i prywatnego) z GUI GPG Keychain Access, a następnie przywrócenie z kopii zapasowej, nie działało - nie wiem dlaczego.

Cezar
źródło