OpenSSH primary sourcesHistorical milestone + current migration guidance

OpenSSH 8.2: FIDO security keys and the real meaning of ssh-rsa deprecation.

OpenSSH 8.2 was released on February 14, 2020. It introduced FIDO/U2F-backed SSH key types and warned that the ssh-rsa signature algorithm would be disabled in a future release because it depends on SHA-1. The critical migration detail is that ssh-rsa names an RSA/SHA-1 signature scheme; it does not mean every RSA key must be thrown away.

This guide replaces the old release-news page with a durable explanation of FIDO-backed keys, resident credentials, RSA/SHA-2 compatibility, and a safer way to inventory legacy SSH dependencies before removing weak algorithms.

February 14, 2020

OpenSSH 8.2 joined hardware-backed authentication with a SHA-1 migration warning.

The 8.2 release notes contain two developments that aged very differently but remain connected operationally. First, OpenSSH added native support for FIDO/U2F authenticators through new security-key-backed public key types. Second, the project warned that the ssh-rsa signature algorithm would be disabled by default in a future release because practical SHA-1 collision attacks had made continued dependence on SHA-1 increasingly difficult to justify.

The release also removed ssh-rsa from accepted certificate-signature algorithms and changed new RSA-key certificate signing to use rsa-sha2-512 by default. It removed diffie-hellman-group14-sha1 from the default key-exchange proposal as part of the same broader move away from SHA-1-era defaults.

For modern operators, the lesson is not “OpenSSH 8.2 is current software.” It is the opposite: use the release as a historical turning point, then evaluate today's actual client/server versions and configured algorithms. The durable migration concept is to separate key material, signature algorithms, host-key algorithms, certificate authorities, and authentication policy rather than treating “RSA” as one switch.

Hardware-backed authentication

FIDO-backed SSH keys keep critical signing material on the authenticator.

OpenSSH 8.2 added the ecdsa-sk and ed25519-sk key types. The -sk suffix identifies security-key-backed credentials. A key generated with a supported FIDO authenticator uses the hardware device during signing, and the release notes describe user presence—typically a physical touch—as the default authorization behavior.

ssh-keygen -t ed25519-sk
    # or, depending on authenticator support:
    ssh-keygen -t ecdsa-sk
    

The operational value is different from simply encrypting a private-key file with a passphrase. A copied local key file is not enough to authenticate if the signing operation still depends on the physical authenticator. That can reduce the value of workstation file theft, but it does not eliminate endpoint compromise, session theft, malicious forwarding, weak server authorization, or account-recovery risks.

Resident keys

FIDO2-capable tokens can support resident credentials. OpenSSH 8.2 documented resident-key generation and retrieval so a credential can be made portable without carrying the usual key-handle file between machines. That convenience changes the threat model: if more of the credential state can be recovered from the token, loss of the token matters more. Protect authenticators with an appropriate PIN/user-verification policy and maintain a deliberate recovery process.

User presence should be a policy decision

OpenSSH supports options that relax the default touch requirement for some security-key credentials. Do not disable user presence merely because automation becomes easier. If a workload needs non-interactive credentials, design that identity separately and constrain it with service-account scope, network boundaries, command restrictions, short lifetimes, or workload identity mechanisms rather than weakening a human administrator credential by default.

The common misconception

ssh-rsa is an RSA/SHA-1 signature algorithm, not a synonym for every RSA key.

The OpenSSH 8.2 release notes explicitly list rsa-sha2-256 and rsa-sha2-512 as better alternatives. Those algorithms can use the same RSA key type while replacing SHA-1 with SHA-2. OpenSSH has supported the RSA/SHA-2 signature algorithms since 7.2 and can use them automatically when both client and server support them.

This distinction prevents a lot of unnecessary emergency key rotation. An inventory that sees an RSA public key and concludes “deprecated” is too coarse. The correct question is which signature algorithm is actually negotiated or required by the client, server, certificate authority, appliance, library, and configuration.

Where compatibility problems appear

  • Old clients or servers: versions predating RSA/SHA-2 support may know only ssh-rsa for RSA signatures.
  • Embedded appliances: network and industrial devices may ship old SSH stacks long after general-purpose operating systems move forward.
  • Certificates and CAs: certificate-signature compatibility can differ from ordinary user/host-key authentication and deserves its own test matrix.
  • Hard-coded algorithm lists: software can be new enough to support SHA-2 but configured to offer or accept only legacy names.
  • Automation libraries: a script's SSH library version may be the limiting component even when the server is modern.
Before changing defaults

Inventory actual negotiation paths, not just key files.

Server-side inventory

Record SSH server versions, supported host keys, accepted user-key algorithms, certificate-authority behavior, system crypto policy, configuration includes, jump hosts, bastions, and vendor support status. Separate internet-facing administrative endpoints from internal automation endpoints because the upgrade risk and exposure differ.

Client inventory

Include administrator workstations, CI runners, backup systems, configuration management, file-transfer jobs, network automation, monitoring, vendor support tools, legacy Java/.NET/Python libraries, and embedded controllers. A single forgotten client can turn a safe algorithm cleanup into an outage.

Observe before forcing

Use verbose client logs, server logs, configuration inspection, and controlled test connections to determine which algorithm is actually used. Do not re-enable ssh-rsa globally because one legacy endpoint fails; identify the dependency and scope any temporary exception narrowly.

Track ownership and retirement

Every legacy exception should name the system owner, reason, compensating controls, upgrade path, review date, and expiration target. Compatibility flags without an owner become permanent weak defaults.

Migration sequence

Move away from SHA-1 without turning compatibility into guesswork.

  1. Patch and inventory first. Unsupported SSH implementations should be an upgrade problem before they become an algorithm-tuning problem.
  2. Confirm RSA/SHA-2 support. Test clients and servers with rsa-sha2-256/512 where RSA keys remain necessary.
  3. Add modern alternatives. Deploy Ed25519, appropriate ECDSA, or security-key-backed credentials where platform policy and compatibility permit.
  4. Rotate host-key knowledge safely. Avoid surprise host-key warnings by planning known-host updates and using supported host-key update mechanisms where appropriate.
  5. Disable weak algorithms in a staged environment. Exercise automation, bastions, appliances, transfers, and recovery access—not just an interactive administrator login.
  6. Scope any exception. If a legacy endpoint temporarily requires ssh-rsa, constrain the exception to that host/path and document removal rather than reopening it globally.
  7. Retest after upgrades. Remove compatibility exceptions as soon as the dependency can negotiate stronger algorithms.

Primary sources: OpenSSH 8.2 release notes and the current OpenBSD/OpenSSH ssh-keygen manual.

Continue learning

Related guides after OpenSSH 8.2 FIDO and ssh-rsa Migration

Follow the next implementation topic without returning to search.

Put this guide to work

Turn OpenSSH 8.2: FIDO Security Keys & ssh-rsa Migration Guide | Zeph Tech into a decision-ready next step.

Use the source-backed research to pressure-test assumptions, then build a reusable evaluation brief before you compare products, scope implementation, or request a fit review.