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
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
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.