鍵をインポートした後、GPG公開鍵にuidがありません。

鍵をインポートした後、GPG公開鍵にuidがありません。

現在、Linuxシステムからそれを置き換える新しいシステムにキーペアをインポートしたいと思います。それでキーをエクスポートして新しいキーにインポートしましたssh

gpg --export --secret-key -a | ssh new_machine gpg --import -a

新しいシステムのキーを一覧表示すると、以前のシステムと同じ出力が表示されます(この--list-packetsオプションを使用しても)。

ただし、両方のコンピュータに異なる公開鍵のリストがあります。新しいコンピュータでは2つの関連UIDしか表示されませんが、古いコンピュータでは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そのうちの1つに一致する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とすべて同じです。

だから、次の質問があります。

  1. 私の考えでは、キーをエクスポートして新しいリポジトリにインポートすると、関連するすべてのuidも公開キーに追加されます。 4つのuidのうち2つが欠けているのはなぜですか?私は初期の店で何かを見落としたのでしょうか?

  2. (上記の1の答えに従って)キーペアをインポートしてエクスポートする正しい方法は何ですか?公開鍵を別々にエクスポートまたはインポートする必要があるのはなぜですか?

PS:私の質問は、説明されたuid関連の問題と少し反対しているようです。ここ(uidは公開鍵にありますが、秘密鍵にはありません)。

ベストアンサー1

おすすめ記事