Jag försöker kopiera min gpg-nyckel från en maskin till en annan.

Jag gör:

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

Flytta filer till ny maskin och sedan:

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] 

Allt ser bra ut för mig, men då:

$ 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 

Så felmeddelandet säger att filen har krypterats med [SUB-ID], som den hemliga nyckelimporten verkar säga att den har importerat. ( [SUB-ID] i båda meddelandena är detsamma).

Så jag gör tydligt något fel men jag vet inte vad.

Svar

Du måste lägga till --import till kommandoraden för att importera den privata nyckeln. Du behöver inte använda --allow-secret-key-import flagga. Enligt mansidan:” Detta är ett föråldrat alternativ och används inte någonstans. ”

gpg --import private.key 

Kommentarer

  • Någon chans att du ' d också vet varför gpg2 -e -r [ID] säger " Det finns ingen försäkran om att den här nyckeln tillhör den namngivna användaren "? Jag önskar att jag hade inkluderat den i den ursprungliga frågan, men jag märkte det först senare.
  • GnuPG underhåller en förtroendatabas som den använder för att bestämma hur mycket man ska lita på vilka nycklar. Till exempel, lita på dina egna nycklar mest, nycklar som inte är ' t undertecknas minst eller indirekt av alla betrodda nycklar minst. När du ' precis importerat till en tom databas är det förmodligen inga nycklar som du litar på. Den här förtroendedatabasen är separat från databasen eller nycklarna själva, så import av nycklar gör dem inte betrodda om de inte är signerade av någon nyckel som redan är betrodd. Du måste ställa GnuPG vilka nycklar du vill lita på separat.
  • @Celeda, tack, med –edit-key och och förtroendekommandot jag lyckades få nyckeln tillförlitlig. Eftersom min ursprungliga fråga var hur man kopierar nyckeln från en maskin till en annan, tror jag att det vore lämpligt att lägga till något om det i ditt svar. Jag ' föredrar att inte redigera ditt svar själv, och du verkar veta mycket mer än jag om detta.
  • Jag vet inte ' känner inte att jag förstår trustdb tillräckligt bra för att prata om det i mitt svar. Jag är ' glad att du kunde lösa det med de vaga tips som jag gav i min kommentar.
  • Ok, jag ' Vi har titeln på den ursprungliga frågan så att den passar mer specifikt med svaret. På det sättet kan jag ställa en separat fråga till trustdb. Tack för hjälpen. 🙂

Svar

Ovan är bara ett partiellt svar. Komplett svar är:

gpg --import private.key 
  • Med tanke på KEYID (t.ex. FA0339620046E260) från utgången :

    gpg --edit-key {KEY} trust quit # enter 5<RETURN> (I trust ultimately) # enter y<RETURN> (Really set this key to ultimate trust - Yes) 
  • ELLER använd det automatiska kommandot nedan:

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

Slutligen verifierar att den nyckeln nu är betrodd [ultimate] istället för [unknown]

gpg --list-keys 

Kommentarer

  • Detta borde vara det accepterade svaret. Mycket mer komplett.
  • Vad gör dessa extra kommandon?
  • @Steiny Det gör nyckeln tillförlitlig med [ultimate] istället för [okänd]. gpgtools.tenderapp.com/kb/faq/…

Svar

Jag importerade från en säkerhetskopia som hade en gammal version av gpg. Eftersom den gamla datorn inte var tillgänglig, bara säkerhetskopian, kunde jag inte exportera den först. Det här fungerade för mig.

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

Om du vill kunna importera hemliga nycklar utan att ange lösenfrasen omedelbart, använd alternativet --batch.

För att verifiera de offentliga nycklarna:

 gpg --list-keys  

För att verifiera de hemliga nycklarna:

 gpg --list-secret-keys  

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *