Próbuję skopiować mój klucz gpg z jednego komputera na inny.

Robię:

gpg --export ${ID} > public.key gpg --export-secret-key ${ID} > private.key 

Przenieś pliki na nowy komputer, a następnie:

gpg --import public.key gpg: nyckel [ID]: public key [Name, e-mail] was imported gpg: Total number of treated keys: 1 gpg: imported: 1 (RSA: 1) gpg --allow-secret-key-import private.key sec [?]/[ID] [Creation date] [Name, e-mail] ssb [?]/[SUB-ID] [Creation date] 

Wszystko wygląda dobrze, ale wtedy:

$ gpg -d [file].gpg gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date] [Name, e-mail] gpg: decryption failed: secret key not accessible 

Więc komunikat o błędzie mówi, że plik został zaszyfrowany przy użyciu [SUB-ID], który wydaje się, że import tajnego klucza jest taki, że został zaimportowany. [SUB-ID] w obu wiadomościach jest takie samo).

Więc wyraźnie robię coś złego, ale nie wiem co.

Odpowiedź

Aby zaimportować klucz prywatny, musisz dodać --import do wiersza poleceń. Nie musisz używać . Zgodnie ze stroną podręcznika:” To jest przestarzała opcja i nie jest nigdzie używana. „

gpg --import private.key 

Komentarze

  • Jest szansa, że ' nie wiesz też, dlaczego gpg2 -e -r [ID] mówi " Nie ma pewności, że ten klucz należy do wymienionego użytkownika "? Żałuję, że nie uwzględniłem tego w pierwotnym pytaniu, ale zauważyłem to dopiero później.
  • GnuPG utrzymuje zaufaną bazę danych, na podstawie której decyduje, w jakim stopniu ufać danym kluczom. Na przykład, najbardziej ufaj swoim własnym kluczom, które najmniej ' nie są podpisane bezpośrednio lub pośrednio przez jakiekolwiek zaufane klucze. Po ' zaimportowaniu do pustej bazy danych prawdopodobnie żadne klucze nie są zaufane. Ta zaufana baza danych jest oddzielona od bazy danych lub samych kluczy, więc importowanie kluczy nie powoduje, że są one zaufane, chyba że są podpisane jakimś zaufanym kluczem. Musisz oznaczyć GnuPG, którym kluczom chcesz zaufać osobno.
  • @Celeda, dzięki, za pomocą –edit-key i oraz polecenia zaufania, któremu udało się uzyskać zaufany klucz. Ponieważ moje pierwotne pytanie brzmiało, jak skopiować klucz z jednej maszyny do drugiej, myślę, że należałoby dodać coś na ten temat do twojej odpowiedzi. ' wolałbym sam nie edytować Twojej odpowiedzi, a wydaje się, że wiesz o tym dużo więcej niż ja.
  • Nie ' czuję, że rozumiem trustdb na tyle dobrze, że mogę o tym mówić w mojej odpowiedzi. ' cieszę się, że udało Ci się to rozwiązać, korzystając z niejasnych wskazówek, które podałem w moim komentarzu.
  • OK, ' zmieniliśmy tytuł oryginalnego pytania, aby bardziej dokładnie pasowało do odpowiedzi. W ten sposób mogę zadać oddzielne pytanie trustdb. Dzięki za pomoc. 🙂

Odpowiedź

Powyższa odpowiedź jest tylko częściowa. Pełna odpowiedź to:

gpg --import private.key 
  • Biorąc pod uwagę KEYID (np. FA0339620046E260) z danych wyjściowych :

    gpg --edit-key {KEY} trust quit # enter 5<RETURN> (I trust ultimately) # enter y<RETURN> (Really set this key to ultimate trust - Yes) 
  • LUB użyj poniższego automatycznego polecenia:

    expect -c "spawn gpg --edit-key {KEY} trust quit; send \"5\ry\r\"; expect eof" 

Na koniec sprawdź ten klucz jest teraz zaufany z [ultimate] zamiast [unknown]

gpg --list-keys 

Komentarze

  • To powinna być zaakceptowana odpowiedź. Znacznie bardziej kompletne.
  • Co robią te dodatkowe polecenia?
  • @Steiny Sprawia, że klucz jest zaufany dzięki [ultimate] zamiast [nieznane]. gpgtools.tenderapp.com/kb/faq/…

Odpowiedź

Importowałem z kopii zapasowej, która miała starą wersję gpg. Ponieważ stary komputer nie był dostępny, tylko kopia zapasowa, nie mogłem go najpierw wyeksportować. To właśnie zadziałało w moim przypadku.

 gpg --import old_home_dir/.gnupg/pubring.gpg gpg --import old_home_dir/.gnupg/secring.gpg  

Jeśli chcesz mieć możliwość zaimportuj tajne klucze bez natychmiastowego wprowadzania hasła, użyj opcji --batch.

Aby zweryfikować klucze publiczne:

 gpg --list-keys  

Aby zweryfikować tajne klucze:

 gpg --list-secret-keys  

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *