首页/安全/取证与溯源速查/SSH 证书登录与 CA 信任配置
Linux 取证135 条

SSH 证书登录与 CA 信任配置

启用证书登录后,只要由受信 CA 签发即可登录,无需写入 authorized_keys;检查 CA 公钥文件与登录日志中的 CERT 标记是必需步骤。

取证与溯源速查安全更新于 2026-10-13

证书登录带来的入口变化

启用证书登录后,只要登录者持有由受信 CA 签发的证书即可通过认证,公钥不必写进目标主机的 authorized_keys。这带来明显的运维便利:批量签发、集中吊销、按 principals 授权,也避免了逐台分发公钥。取证上必须同时看两处:sshd_config 中 TrustedUserCAKeys 指向的 CA 公钥文件是否被替换,以及认证日志中带证书标识的接受记录。只查 authorized_keys 会整类漏掉证书入口。

基本信息

服务端配置TrustedUserCAKeys、AuthorizedPrincipalsFile
客户端用法ssh -i <私钥> -o CertificateFile=<证书> 用户@主机
日志特征Accepted publickey 记录中附带证书相关标识
查看证书ssh-keygen -L -f 证书文件,打印证书字段

典型使用场景

  • 核查主机是否接受证书登录,评估登录入口的完整清单
  • 确认 CA 公钥文件是否与配置管理系统登记的一致
  • 从日志中挑出持证书登录的会话,区别于普通密钥登录
  • 检查证书的 principals 与有效期是否被放宽
  • 评估吊销某张证书后是否真的无法再登录

核查配置与证书

核查配置与证书
grep -Rn 'TrustedUserCAKeys\|AuthorizedPrincipals' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ 2>/dev/null
ssh-keygen -lf /etc/ssh/ca.pem -E sha256 2>/dev/null   # CA 公钥指纹,与台账比对
ssh-keygen -L -f user-cert.pub 2>/dev/null | head -20  # 查看证书的 principals 与有效期
grep -i 'Accepted' /var/log/secure | tail -10          # 认证接受记录
stat -c '%n %y %a' /etc/ssh/ca.pem 2>/dev/null         # CA 文件时间与权限

证书关键字段读法

字段含义判读要点
Key ID签发时写入的标识常为账号或工单号,可用于归责
Principals允许登录的身份列表过宽的通配值等于放开全部账号
Valid证书有效期有效期过长会削弱吊销机制的作用
Critical Options强制约束项可限制来源地址与转发能力
CA 文件被替换意味着攻击者可以自行签发长期有效的证书登录本机,且不触碰 authorized_keys,因此把 CA 文件指纹纳入基线校验比逐个核对公钥更有效。
证书有效性与 principals 由两处配置共同决定,只检查其中一处会得出错误结论;检查顺序建议先看 CA 指纹,再看 principals 与有效期。
整改时不要直接停用证书登录,先确认现网自动化与运维脚本是否依赖证书,切换顺序出错会导致大面积登录失败。

易错点

  • 只查 authorized_keys,证书登录这条入口整个被漏掉
  • 比对 CA 文件时只看文件名不看指纹,文件被替换无法发现
  • 证书 principals 使用通配,实际授权范围远超预期
  • 停用证书登录前未确认依赖,运维通道被一并切断

数据来源与参考

  • OpenSSH 手册(CERTIFICATES 与 TrustedUserCAKeys)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌