脆弱性に関連してDSAは無効になってたりするので、RSAかECDSAかEdDSAが選択肢になるらしい。
$ ssh-keygen -t ed25519 -a 128 -C "comment for key"
少なくともキー長は4096bitにしておくと良さそう。最大キー長は16384bit?
$ ssh-keygen -t rsa -b 4096 -C "comment for key"
しかし、2048bit以上の強さが必要な場合は… という推奨もあるので推奨もあるので、以下に続く
ECDSAとEdDSAは
ECDSA 疑似乱数が暗号的に強力でない場合は脆弱
EdDSAは、キーの長さに比べて最高のセキュリティレベル
なのでEdDSAを使うと良いのかなと。
EdDSAの暗号化アルゴリズム(と言う表現で良いのか?) Ed25519 を使います。
$ ssh-keygen -t ed25519 -a 128 -C "comment for key"
キー長は256bit固定なので指定がありません。
-a は鍵導出関数のラウンド数を指定します。大きいほど秘密鍵のブルートフォースに強くなりますが、SSHログインセッションの初期化の時間が長くなるようです。manを見た感じ、デフォルトは16。