/changelogs/ssh/openssh-9-9-to-10
OpenSSH 9.9 to 10.x: incompatible changes from 10.0 to 10.6
The commands on this page have not been executed by our verification runner yet.updated 2026-10-20
- tool
- OpenSSH
- versions
- 9.9 → 10.6
OpenSSH 10.0 was released on 2025-04-09 and 10.6 on 2026-10-06. The upgrade from 9.9 matters mostly if you still use DSA keys, old servers that only speak modp Diffie-Hellman, or scripts that parse the version string. The list below covers the "potentially-incompatible changes" of every 10.x release.
10.0 (2025-04-09)
- DSA removed. DSA keys and signatures no longer work at all. Replace
id_dsakeys with Ed25519 (ssh-keygen -t ed25519). - No modp DH in sshd by default.
diffie-hellman-group*anddiffie-hellman-group-exchange-*are no longer in sshd's defaultKEXAlgorithms. The client still supports them. - scp and sftp pass
ControlMaster noto ssh, so they no longer create a multiplexing master implicitly. - Version string
SSH-2.0-OpenSSH_10.0: software matchingOpenSSH_1*can mistake it for version 1.x.
10.1 (2025-10-06)
- ssh warns when the connection uses a key agreement that is not post-quantum (
WarnWeakCrypto, on by default). - New DSCP defaults: interactive traffic is marked EF; IPQoS ToS keywords (
lowdelay,throughput,reliability) are ignored. ssh-agentand forwarded agent sockets move from/tmpto~/.ssh/agent;ssh-agent -Trestores/tmp.ssh-addgives certificates an agent lifetime of their expiry plus 5 minutes (ssh-add -Ndisables this).- Experimental XMSS key support is removed.
10.3 (2026-04-02)
- Bug compatibility for implementations that cannot rekey is removed; such peers eventually disconnect.
- A certificate with an empty principals section no longer matches every principal through
authorized_keys principals="". -J/ProxyJumpon the command line validates user and host names.
10.4 (2026-07-06)
sshd -Gprints directives in mixed case (PubkeyAuthentication) instead of lower case.- On Linux, failing to enable the seccomp sandbox is fatal.
- Peers that send non-KEX messages during a post-authentication rekey are disconnected.
10.5 (2026-08-11) and 10.6 (2026-10-06)
- 10.5: portable OpenSSH requires ECC support (including NIST P-521) in libcrypto.
- 10.6: user names typed on the command line may not contain backslash or
$; names set withUserin config files are not restricted. Compression is less effective because of a security fix.
Check before you upgrade
ssh -V
ssh -Q key # key types the client supports
ls ~/.ssh/id_dsa* # any DSA key must be replacedSources
Related pages
errors · sshPermission denied (publickey) with sshssh fails with Permission denied (publickey) when the server accepts only keys and none you offer is authorized. Check the key, the user and file permissions.config · ssh~/.ssh/config: Host, HostName, User, Port and IdentityFile~/.ssh/config defines per-host SSH settings: an alias with Host, the real name with HostName, plus User, Port and IdentityFile. Check the result with ssh -G.compare · rsyncrsync vs scp: which one to copy files over SSHrsync transfers only changed parts of files, resumes and mirrors directories with --delete; scp copies whole files every time. Both run over SSH. Differences.