현재 Linux 시스템에서 이를 대체할 새 시스템으로 키 쌍을 가져오고 싶습니다. 그래서 키를 내보내고 새 키로 가져왔습니다 ssh
.
gpg --export --secret-key -a | ssh new_machine gpg --import -a
새 시스템의 키를 나열하면 이전 시스템과 동일한 출력이 제공됩니다(이 --list-packets
옵션을 사용하더라도).
그러나 두 컴퓨터에는 서로 다른 공개 키 목록이 있습니다. 새 컴퓨터에서는 관련 UID가 2개만 표시되지만 이전 컴퓨터에서는 4개만 가져옵니다.
# old machine
$ gpg -k
pub 4096R/XXXXXXXX 2020-12-31 [expires: 2022-05-31]
uid John Doe (John) <[email protected]>
uid John Doe (John) <[email protected]>
uid John Doe (John) <[email protected]>
uid John Doe (John) <[email protected]>
sub 4096R/YYYYYYYY 2020-12-31 [expires: 2022-12-31]
# new machine (after import)
$ gpg -k
pub 4096R/XXXXXXXX 2020-12-31 [expires: 2022-05-31]
uid John Doe (John) <[email protected]>
uid John Doe (John) <[email protected]>
sub 4096R/YYYYYYYY 2020-12-31 [expires: 2022-12-31]
--edit
그 중 하나와 일치하는 uid를 수동으로 추가하세요.잃어버린, 결과적으로 개인 키에 중복된(동일한?) UID가 생성됩니다.
그래서 가져오기부터 시작하여 동일한 단계를 수행했지만 이전 시스템에서 공개 키를 내보내고 새 시스템에 삽입했는데 이것이 작동하는 것 같았습니다. 가져오기 작업의 출력은 다음과 같습니다.
gpg: key XXXXXXXX: "John Doe (John) [email protected]" 2 new user IDs
gpg: key XXXXXXXX: "John Doe (John) [email protected]>" 2 new signatures
gpg: Total number processed: 1
gpg: new user IDs: 2
gpg: new signatures: 2
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2022-12-31
결과는 --list-keys
이전 시스템의 4개 uid와 모두 동일합니다.
그래서 다음과 같은 질문이 있습니다.
내 생각에는 키를 내보낸 다음 새 저장소로 가져오면 관련된 모든 uid도 공개 키에 추가된다는 것입니다. 4개의 uid 중 2개가 누락된 이유는 무엇입니까? 제가 초기 매장에서 뭔가를 간과한 걸까요?
(위 1에 대한 답변에 따라) 키 쌍을 가져오고 내보내는 올바른 방법은 무엇입니까? 공개 키를 별도로 내보내거나 가져와야 하는 이유는 무엇입니까?
추신: 내 질문은 설명된 uid 관련 문제와 약간 반대인 것 같습니다.여기(uid는 공개 키에 있지만 개인 키에는 없습니다).