SSH certificates: the better SSH experience
Where SSH Certificates Help vs. Don’t
- Seen as very helpful when:
- There are many users/hosts or frequent rebuilds (e.g., daily-reinstalled dev/stage machines).
- Host certificates avoid constant
known_hostschurn. - Short-lived user certs give time-bound access and “break-glass” workflows.
- Often not worth it when:
- Small setups with a few machines and minimal key pain.
- Infra-as-code already updates SSH keys centrally.
- Some platforms (Dropbear, tinyssh, some Java SSH stacks) don’t support certs, so keys must be managed anyway.
Operational Complexity and Failure Modes
- Managing an SSH CA introduces a powerful “keys to the kingdom” component that must be protected and highly available.
- Problems cited:
- Signer must be up and correct; outages or attacks can lock out everyone at once.
- TTL tuning is tricky: too short → random lockouts; too long → weakens revocation benefits.
- Debugging becomes harder with less on-box state; failures fan out instead of being isolated.
- Some prefer a pull model: servers fetch authorized keys/roles over outbound HTTPS and apply them locally, keeping failures local.
Security, TOFU, and Revocation
- Debate on TOFU:
- Some say they’ve never seen TOFU exploited; risk is narrow (first connection, specific attacker position).
- Others argue that’s like “no crash so no seatbelts” and prefer pre-distributed keys or SSHFP + DNSSEC.
- Clarification that blindly accepting host keys is not “secure TOFU”; proper pairing still requires out-of-band verification.
- Disagreement on whether certs reduce “pairing” effort:
- One side: you still need secure distribution of CA roots and signed keys, so work is similar.
- Other side: CA lets you avoid touching every server/client for each new key.
- Revocation lists for SSH certs are seen as under-documented and rarely used; many rely instead on short-lived certs, which raises availability concerns.
Alternatives, Tooling, and Ecosystem
- Alternatives mentioned:
AuthorizedKeysCommandwith HTTPS/LDAP backends, FreeIPA/SSSD, Kerberos GSSAPI, OIDC-based SSH, DNS SSHFP, and various commercial/open-source tools. - Some systems (e.g., internal platforms, pico.sh) use SSH cert principals for RBAC-like access.
- Several commenters call for a clear, authoritative best-practices guide, noting current documentation and tooling around SSH certs are fragmented and often “janky.”