SSH で使用するために GnuPG から ed25519 秘密鍵をエクスポートする

SSH で使用するために GnuPG から ed25519 秘密鍵をエクスポートする

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]

--export-ssh-keySSH で使用するために公開鍵をエクスポートするには、 GnuPG 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 が理解できる形式に変換します。

openpgp2sshこれは、ed25519キーを処理しないため、ed25519 キーでは機能しません。

私の知る限り、一部の人は GPG キーリングを SSH で直接使用していますが、私の環境ではうまくいきません。Windows 上の PuTTY で使用するには、秘密キーを分離する必要があります。

関連情報