Closed8

ssh 公開鍵を RSA から ed25519 に変更する

Kentaro OhkouchiKentaro Ohkouchi

課題など

  • 最近は ed25519 の鍵が多くなってきた
  • RSA 2048 bit の利用期限は2030年12月31日まで(https://pki.world-tls.com/rsa2048bit/#toc1)
  • はやめに移行計画をしたほうがよさげ
  • 現在利用中の PGP公開鍵の有効期限は 2027年10月20日までなので、それまでには移行したい
  • しかし、現行の公開鍵はいろいろなところに大量に登録してある...
Kentaro OhkouchiKentaro Ohkouchi

対応方法

  • ed25519 のキーペアを作成して、デフォルトの公開鍵とする
  • 地道に鍵の置き換えをしていく...
Kentaro OhkouchiKentaro Ohkouchi

とりあえず ed25519 のキーペアを作成する

ssh-keygen -t ed25519

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/nanasess/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/nanasess/.ssh/id_ed25519
Your public key has been saved in /home/nanasess/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:U8nOY79Wx3MXIyBZOJAm/lW0EAqur+lKUAVGMcKXQI0 nanasess@DESKTOP-HV9026L
The key's randomart image is:
+--[ED25519 256]--+
|++Xoo. .oo*o     |
| E *...o.*.+.    |
|  o ..o.  B..    |
| .  ..   =   . o |
|.  .  . S =   ..o|
|.   .  . o o  ..=|
| .   .      .. .+|
|.   o       ..   |
| .o+       ..    |
+----[SHA256]-----+
Kentaro OhkouchiKentaro Ohkouchi

RSA と ed25519 の両方の公開鍵が登録されている場合は、 RSA が使われるっぽい

Kentaro OhkouchiKentaro Ohkouchi

PGP公開鍵の作成と登録

参考
https://qiita.com/shun-shobon/items/a944416bebb6207016fb#fn-1

gpg --expert --full-gen-key
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

ご希望の鍵の種類を選択してください:
   (1) RSA と RSA
   (2) DSA と Elgamal
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
   (7) DSA (機能をあなた自身で設定)
   (8) RSA (機能をあなた自身で設定)
   (9) ECC (署名と暗号化) *デフォルト
  (10) ECC (署名のみ)
  (11) ECC (機能をあなた自身で設定)
  (13) 既存の鍵
  (14) カードに存在する鍵
あなたの選択は? 11

このECC鍵にありうる操作: Sign Certify Authenticate
現在の認められた操作: Sign Certify

   (S) 署名機能を反転する
   (A) 認証機能を反転する
   (Q) 完了

あなたの選択は? s

このECC鍵にありうる操作: Sign Certify Authenticate
現在の認められた操作: Certify

   (S) 署名機能を反転する
   (A) 認証機能を反転する
   (Q) 完了

あなたの選択は? q
ご希望の楕円曲線を選択してください:
   (1) Curve 25519 *デフォルト
   (2) Curve 448
   (3) NIST P-256
   (4) NIST P-384
   (5) NIST P-521
   (6) Brainpool P-256
   (7) Brainpool P-384
   (8) Brainpool P-512
   (9) secp256k1
あなたの選択は? 1
鍵の有効期限を指定してください。
         0 = 鍵は無期限
      <n>  = 鍵は n 日間で期限切れ
      <n>w = 鍵は n 週間で期限切れ
      <n>m = 鍵は n か月間で期限切れ
      <n>y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)0
鍵は無期限です
これで正しいですか? (y/N) y

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。

本名: Kentaro Ohkouchi
電子メール・アドレス: nanasess@fsm.ne.jp
コメント:
次のユーザIDを選択しました:
    "Kentaro Ohkouchi <nanasess@fsm.ne.jp>"

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
gpg: ディレクトリ'/home/nanasess/.gnupg/openpgp-revocs.d'が作成されました
gpg: 失効証明書を '/home/nanasess/.gnupg/openpgp-revocs.d/968E78646371682B74499CCBEC6BBB25D6B83E48.rev' に保管しました。
公開鍵と秘密鍵を作成し、署名しました。

pub   ed25519 2024-11-27 [C]
      968E78646371682B74499CCBEC6BBB25D6B83E48
uid                      Kentaro Ohkouchi <nanasess@fsm.ne.jp>

副鍵の作成

gpg --expert --edit-key 968E78646371682B74499CCBEC6BBB25D6B83E48
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

秘密鍵が利用できます。

sec  ed25519/EC6BBB25D6B83E48
     作成: 2024-11-27  有効期限: 無期限      利用法: C
     信用: 究極        有効性: 究極
[  究極  ] (1). Kentaro Ohkouchi <nanasess@fsm.ne.jp>

gpg> addkey
ご希望の鍵の種類を選択してください:
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
   (5) Elgamal (暗号化のみ)
   (6) RSA (暗号化のみ)
   (7) DSA (機能をあなた自身で設定)
   (8) RSA (機能をあなた自身で設定)
  (10) ECC (署名のみ)
  (11) ECC (機能をあなた自身で設定)
  (12) ECC (暗号化のみ)
  (13) 既存の鍵
  (14) カードに存在する鍵
あなたの選択は? 11

このECC鍵にありうる操作: Sign Authenticate
現在の認められた操作: Sign

   (S) 署名機能を反転する
   (A) 認証機能を反転する
   (Q) 完了

あなたの選択は? q
ご希望の楕円曲線を選択してください:
   (1) Curve 25519 *デフォルト
   (2) Curve 448
   (3) NIST P-256
   (4) NIST P-384
   (5) NIST P-521
   (6) Brainpool P-256
   (7) Brainpool P-384
   (8) Brainpool P-512
   (9) secp256k1
あなたの選択は? 1
鍵の有効期限を指定してください。
         0 = 鍵は無期限
      <n>  = 鍵は n 日間で期限切れ
      <n>w = 鍵は n 週間で期限切れ
      <n>m = 鍵は n か月間で期限切れ
      <n>y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)1y
鍵は2025年11月27日 23時01分22秒 JSTで期限切れとなります
これで正しいですか? (y/N) y
本当に作成しますか? (y/N) y
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。

sec  ed25519/EC6BBB25D6B83E48
     作成: 2024-11-27  有効期限: 無期限      利用法: C
     信用: 究極        有効性: 究極
ssb  ed25519/37DA0F05370C1856
     作成: 2024-11-27  有効期限: 2025-11-27  利用法: S
[  究極  ] (1). Kentaro Ohkouchi <nanasess@fsm.ne.jp>

gpg> save
Kentaro OhkouchiKentaro Ohkouchi

http://pgp.mit.edu/ に登録する

PGP公開鍵を貼り付けて Submit this key to the keyserver! をクリック。
公開鍵は gpg --armor --export 37DA0F05370C1856(副鍵のID) で出力可能

ちなみにめっちゃ重い

このスクラップは8日前にクローズされました