Ponownie zainstalowałem swój system operacyjny (Ubuntu 16.04) i mam stary katalog .gnupg zawierający:
gpg-agent.conf
gpg-agent-info-<hostname>
gpg.conf
private-keys-v1.d
pubring.gpg
secring.gpg
S.gpg-agent
trustdb.gpg
Chciałbym zaimportować moje stare klucze publiczne i prywatne do nowego programu gnupg. (Nie po prostu skopiowałem katalogu .gnupg do nowej instalacji, ponieważ rozumiem, że nowy gnupg2 ma pewne różnice w formacie bazy danych, które są częścią nowych opcji szyfrowania WE).
Następujące działało w przypadku kluczy publicznych, ale nie powiodło się w przypadku kluczy tajnych:
gpg --export --keyring=~/.gnupg.old/pubring.gpg | gpg --import
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg | gpg --import
Ten ostatni odpowiedział:
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Zauważ, że to nie otwiera mojego nowego tajnego pierścienia. Daje ten sam błąd przy próbie eksportu do pliku:
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg > secret.asc
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
Ponieważ mój tajny klucz ma usuniętą prywatną część klucza głównego, próbowałem również tego samego --export-secret-subkeys
, ale odpowiedź była taka sama. Umieszczenie mojego klucza ID (adresu e-mail) po eksporcie również nie działa. Z drugiej strony mogę wymienić klucze:
gpg --list-keys --keyring=~/.gnupg.old/secring.gpg
gpg: Oops; key lost!
node 0x1e7ee00 01/00 type=secret-key
node 0x1e9cbd0 00/00 type=user-id "Me <[email protected]>" ....
node 0x1e99dd0 00/00 type=signature class=13 keyid=XXXXXXXX ts=1383637282
node 0x1e9c510 00/00 type=secret-subkey
node 0x1eaa210 00/00 type=signature class=18 keyid=XXXXXXXX ts=1449138073
node 0x1eaf1f0 00/00 type=secret-subkey
node 0x1eaf580 00/00 type=signature class=18 keyid=XXXXXXXX ts=138363647
(Zakładam, że „zgubiono klucz” odnosi się do pozbawionego klucza tajnego klucza głównego.) Czy ktoś może mi pokierować, jak to rozwiązać?
Przy pomocy @Jens (poniżej) działa:
gpg --no-default-keyring --secret-keyring=~/.gnupg.old/secring.gpg --export-secret-keys | gpg --import
--no-default-keyring
i--secret-keyring
przedtem--list-secret-keys
daje rozpoznawalny wynik. Pozwól mi zobaczyć, co mam teraz.