Skip to content
ecdsa.com

SSH (Secure Shell)

The protocol of RFC 4251–4254 for authenticated, encrypted remote login, command execution, file transfer and port forwarding, in which the server proves itself with a host key and users authenticate with keys, certificates or passwords.
Also written asSecure ShellOpenSSHSSH protocol

A connection runs the transport layer (key exchange, server host-key signature, encryption), then user authentication, then multiplexed channels. Key exchange names describe the hybrid in use, such as mlkem768x25519-sha256 (the OpenSSH default since 10.0), sntrup761x25519-sha512 or curve25519-sha256; ciphers are AEADs such as chacha20-poly1305@openssh.com and aes256-gcm@openssh.com.

Key types: ssh-ed25519, ecdsa-sha2-nistp256, rsa-sha2-256 and rsa-sha2-512 (RSA keys signing with SHA-2; the SHA-1 ssh-rsa signature has been disabled by default since OpenSSH 8.8), FIDO-backed sk-ssh-ed25519@openssh.com and sk-ecdsa-sha2-nistp256@openssh.com, and certificates. DSA was removed in OpenSSH 10.0. OpenSSH 10.4 (July 2026) added an experimental composite ML-DSA-44 plus Ed25519 signature, off by default.

Trust is first-use by default: the client records the host key in known_hosts on the first connection and warns loudly if it changes. SSH certificates or DNS SSHFP records replace that leap of faith in larger fleets. The SSH server audit checks which algorithms a server offers.

Standards and references

All terms