Skip to content
ecdsa.com

SSH certificate

An OpenSSH-specific signed statement (not X.509) in which a certificate authority key binds a user or host public key to principals, a validity window and options, removing the need to distribute individual keys.
Also written asOpenSSH certificateSSH CATrustedUserCAKeyscert-authority

Defined in OpenSSH's PROTOCOL.certkeys: key types such as ssh-ed25519-cert-v01@openssh.com carry the public key, a serial, user or host type, a key id, valid principals (user names or host names), valid after and valid before times, critical options (force-command, source-address) and extensions (permit-pty, permit-port-forwarding). ssh-keygen -s ca_key -I id -n alice -V +8h user_key.pub issues one.

Servers trust user certificates with TrustedUserCAKeys (optionally mapping principals with AuthorizedPrincipalsFile); clients trust host certificates with an @cert-authority line in known_hosts. Revocation uses a key revocation list (RevokedKeys), but short validity periods (hours) issued by an SSO-integrated CA, as in step-ca, Teleport or Vault, are the usual design.

Unlike X.509 there are no chains: each certificate is signed directly by a CA key, which must therefore be protected like a root.

Standards and references

All terms