もしあなたがまだ ssh-keygen -t rsa で鍵を生成しているなら、知識をアップデートする時です。SSHセキュリティの常識はここ数年で大きく変わりました。
2025年現在、何が推奨され、何が廃止されたのかをまとめます。
1. RSA/SHA-1 の実質的な死

古いRSA鍵(特に ssh-rsa)は署名アルゴリズムに SHA-1 を使用しますが、これは脆弱とみなされています。OpenSSH 8.8(2021年リリース)から、SHA-1を使ったRSA署名はデフォルトで無効化されました。
古いサーバーに接続しようとして、
Unable to negotiate with ...: no matching host key type found. Their offer: ssh-rsa
というエラーを見たことはありませんか?これが原因です。
対策:
ssh-rsa は捨てましょう。どうしてもRSAが必要な場合でも、rsa-sha2-256 や rsa-sha2-512 が使われるように設定が必要です。
2. 新標準:Ed25519
RSAのビット数(2048か4096か)で悩むのはもう終わりです。現在の業界標準は Ed25519 です。
- 高速: 鍵生成も認証も爆速です。
- コンパクト: 公開鍵の文字列が非常に短く、扱いやすいです。
- 安全: サイドチャネル攻撃に対して強く設計されています。
# 今、あなたが打つべきコマンド ssh-keygen -t ed25519 -C "your-email@example.com"
3. FIDO2 / U2F 物理セキュリティキー
これが最大のゲームチェンジャーです。OpenSSH 8.2以降、FIDO2セキュリティキー(YubiKeyなど)をネイティブサポートしました。
# ハードウェアトークンを使った鍵生成 ssh-keygen -t ed25519-sk
これを実行すると、PC上には「キーハンドル」と呼ばれる参照ファイルだけが作られます。本物の秘密鍵は物理キーの中にあり、外に出ることはありません。 もしPCがマルウェアに感染しても、物理キーを盗まれない限り、攻撃者はサーバーにSSHできません。
用語解説
- U2F/FIDO2: 物理デバイスを使った認証の標準規格。
- Resident Key: 物理キーの中に秘密鍵情報ごと保存する方式。PCが変わっても物理キーさえあればSSHできます。
- Touch Presence: SSH接続するたびに、物理キーの金属部分に指でタッチすること。「人間がそこにいること」を物理的に証明します。
4. Windowsのネイティブ対応
Windows 10/11には OpenSSH クライアント(とサーバー)が標準搭載されています。
PowerShellやコマンドプロンプトで普通に ssh コマンドが打てます。もはや PuTTY は必須ツールではありません。
2025年のまとめ
ssh-rsaやdsaは 使わない。- 通常のファイルベースの鍵なら
ed25519を 使う。 - 重要なサーバーへのアクセスには
ed25519-sk(FIDO2) への移行を 検討する。