Le format est défini dans le fichier PROTOCOL.certkeys d’OpenSSH : les types de clés comme ssh-ed25519-cert-v01@openssh.com contiennent la clé publique, un numéro de série, le type (utilisateur ou hôte), un identifiant de clé, les principaux valides (noms d’utilisateur ou noms d’hôte), les instants valid after et valid before, des options critiques (force-command, source-address) et des extensions (permit-pty, permit-port-forwarding). ssh-keygen -s ca_key -I id -n alice -V +8h user_key.pub en émet un.
Les serveurs font confiance aux certificats d’utilisateur via TrustedUserCAKeys (et associent, si besoin, les principaux via AuthorizedPrincipalsFile) ; les clients font confiance aux certificats d’hôte via une ligne @cert-authority dans known_hosts. La révocation passe par une liste de révocation de clés (RevokedKeys), mais la conception habituelle repose sur des périodes de validité courtes (quelques heures), avec des certificats émis par une AC intégrée au SSO, comme dans step-ca, Teleport ou Vault.
Contrairement à X.509, il n’y a pas de chaînes : chaque certificat est signé directement par une clé d’AC, qui doit donc être protégée comme une racine.