跳到主要内容
ecdsa.com

SSH 证书

OpenSSH 专有的签名声明(不是 X.509),由证书颁发机构(CA)密钥把用户或主机的公钥绑定到主体(principal)、有效期和选项上,从而无需逐个分发密钥。
其他写法OpenSSH certificateSSH CATrustedUserCAKeyscert-authority

由 OpenSSH 的 PROTOCOL.certkeys 定义:ssh-ed25519-cert-v01@openssh.com 等密钥类型携带公钥、序列号、用户或主机类型、密钥 ID、有效主体(用户名或主机名)、valid after 和 valid before 时间、关键选项(force-command、source-address)以及扩展(permit-pty、permit-port-forwarding)。ssh-keygen -s ca_key -I id -n alice -V +8h user_key.pub 可签发一张证书。

服务器通过 TrustedUserCAKeys 信任用户证书(可以用 AuthorizedPrincipalsFile 映射主体);客户端通过 known_hosts 中的 @cert-authority 行信任主机证书。吊销使用密钥吊销列表(RevokedKeys),但常见的设计是由集成 SSO 的 CA 签发有效期很短(以小时计)的证书,例如 step-ca、Teleport 或 Vault 的做法。

与 X.509 不同,SSH 证书没有证书链:每张证书都直接由 CA 密钥签名,因此必须像保护根 CA 一样保护这个密钥。

标准与参考资料

全部术语