비밀 GPG 키를 가져오는 방법(한 컴퓨터에서 다른 컴퓨터로 복사)?

비밀 GPG 키를 가져오는 방법(한 컴퓨터에서 다른 컴퓨터로 복사)?

한 컴퓨터에서 다른 컴퓨터로 GPG 키를 복사하려고 합니다.

나는 다음을 원한다:

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

파일을 새 컴퓨터로 이동한 후 다음을 수행합니다.

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]

내가 보기에는 모든 것이 괜찮아 보이지만,

$ 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

따라서 오류 메시지는 파일이 [SUB-ID]로 암호화되었음을 나타내며 키 가져오기는 해당 파일을 가져온 것으로 나타납니다. ([SUB-ID]는 두 메시지 모두 동일합니다.)

그래서 분명히 뭔가 잘못하고 있는 것 같지만, 무엇인지는 모르겠습니다.

답변1

--import가져온 개인 키를 명령줄에 추가 해야 합니다 . (이 플래그를 사용할 필요는 없습니다 --allow-secret-key-import. 매뉴얼 페이지에 따르면 "이것은 더 이상 사용되지 않는 옵션이며 어디에도 사용되지 않습니다.")

gpg --import private.key

답변2

이는 답변 중 일부일 뿐입니다. 완전한 대답은 다음과 같습니다.

gpg --import private.key
  • FA0339620046E260출력에 KEYID가 주어지면(예를 들어):

      gpg --edit-key {KEY} trust quit
      # enter 5<RETURN> (I trust ultimately)
      # enter y<RETURN> (Really set this key to ultimate trust - Yes)
    
  • 또는 다음 자동 명령을 사용하십시오.

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

마침내,확인하다이제 키가 [ultimate]대신 신뢰됩니다.[unknown]

gpg --list-keys

답변3

이전 버전의 gpg가 있는 백업에서 가져오고 있습니다. 이전 컴퓨터를 사용할 수 없고 백업만 있기 때문에 먼저 내보낼 수 없습니다. 이것은 나에게 효과적입니다.

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

--batch비밀번호를 즉시 입력하지 않고 키를 가져오려면 이 옵션을 사용하십시오 .

공개 키 확인:

gpg --list-keys

키를 확인하려면:

gpg --list-secret-keys

관련 정보