本文へスキップ
ecdsa.com

SSH(Secure Shell)

認証され暗号化されたリモートログイン、コマンド実行、ファイル転送、ポートフォワーディングのための RFC 4251〜4254 のプロトコルで、サーバーはホスト鍵で自身を証明し、ユーザーは鍵、証明書、パスワードのいずれかで認証します。
別表記Secure ShellOpenSSHSSH protocol

接続では、まずトランスポート層(鍵交換、サーバーのホスト鍵による署名、暗号化)、次にユーザー認証、最後に多重化されたチャネルが動作します。鍵交換の名前は、mlkem768x25519-sha256(10.0 以降の OpenSSH のデフォルト)、sntrup761x25519-sha512、curve25519-sha256 のように、使われているハイブリッドの構成を表します。暗号方式は chacha20-poly1305@openssh.com や aes256-gcm@openssh.com などの AEAD です。

鍵タイプには、ssh-ed25519、ecdsa-sha2-nistp256、rsa-sha2-256 と rsa-sha2-512(SHA-2 で署名する RSA 鍵。SHA-1 を使う ssh-rsa 署名は OpenSSH 8.8 以降デフォルトで無効です)、FIDO 対応の sk-ssh-ed25519@openssh.com と sk-ecdsa-sha2-nistp256@openssh.com、そして証明書があります。DSA は OpenSSH 10.0 で削除されました。OpenSSH 10.4(2026年7月)は、ML-DSA-44 と Ed25519 を組み合わせた実験的な複合署名を追加しましたが、デフォルトでは無効です。

デフォルトの信頼モデルは初回利用時の信頼です。クライアントは最初の接続でホスト鍵を known_hosts に記録し、それが変わると強く警告します。大規模なサーバー群では、SSH 証明書や DNS の SSHFP レコードが、この確認なしの信頼に代わります。SSH サーバー監査では、サーバーが提示するアルゴリズムを確認できます。

規格と参考文献

すべての用語