從 GnuPG 匯出私有 ed25519 金鑰以在 SSH 中使用

從 GnuPG 匯出私有 ed25519 金鑰以在 SSH 中使用

有沒有辦法從 GnuPG 儲存的 ed25519 密鑰對建立 id_ed25519 (不是 id_ed25519.pub)檔案?

我已經開始在 GPG 中追蹤我的 SSH 金鑰:

sec   rsa3072 2017-12-12 [C]
      DDD8CEFDE281D48CBBF0C56FE2AA8C94C8A7C456
uid           [ultimate] Dave <[email protected]>
ssb   rsa3072 2017-12-12 [S]
ssb   rsa3072 2017-12-12 [E]
ssb   rsa3072 2017-12-12 [A]
ssb   ed25519 2017-12-12 [A]

為了匯出我的公鑰以供 SSH 使用,我使用了--export-ssh-keyGnuPG 中自 2.1 版本以來可用的選項。這適用於 RSA 和 ed25519 金鑰。

$ gpg -o id_rsa.pub --export-ssh-key 5D61D0F9!
$ gpg -o id_ed25519.pub --export-ssh-key 0A072B72!

(! 強制 GnuPG 使用指定的子金鑰,而不是第一個可用的身份驗證金鑰。)

為了匯出 RSA 私鑰,我使用以下工作流程:

$ gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd 0A072B72! | \
openpgp2ssh 0A072B72 > id_rsa

這將創建 SSH 可以理解的 RSA 私鑰,但沒有密碼。

要重新新增密碼,我使用:

$ ssh-keygen -p -f id_rsa

在我的 Windows 工作站上,我使用 PuTTYGen 將金鑰轉換為 PuTTY 可以理解的內容。

這與 ed25519 鍵不同,因為openpgp2ssh不處理 ed25519 鍵。

據我所知,有些人直接透過 SSH 使用 GPG 金鑰環,但這對我不起作用。我需要將私鑰分離出來以便與 Windows 上的 PuTTY 一​​起使用。

相關內容