高级目标应配置2–8小时短生命周期ssh证书,按角色分级(如sre设4小时、开发设2小时),强制绑定身份(-n)、序列号(-z)、源ip(-o source_address)等策略字段,服务端禁用回退路径并启用吊销检查,客户端自动加载且私钥内存保护。

短有效期不是为了“卡时间”,而是让每次登录都自带明确边界:谁、在哪、能干多久、权限多细。关键在策略落地,而不是证书生成本身。
设定合理有效期范围
2–8小时是生产环境最常用区间,比5分钟更实用,比7天更安全。不能一刀切:
- 运维人员(如SRE)建议设为4小时,兼顾操作连贯性与风险窗口
- 开发人员访问测试环境可设为2小时,降低误用或凭证滞留风险
- 临时排查任务支持按需申请,例如
infisical ssh --ttl 30m,签发30分钟证书 - 所有证书必须带
-V +4h这类相对时间参数,避免绝对时间戳因服务器时钟偏差导致拒绝登录
强制绑定身份与约束条件
有效期只是起点,真正起作用的是证书里嵌入的策略字段:
-
-n alice:限定只能以用户名alice登录,禁止用同一证书冒充其他账号 -
-z 12345:添加唯一序列号,审计日志中可直接关联到具体签发事件 -
-O source_address=10.10.20.0/24:限制仅允许从指定网段发起连接(OpenSSH 9.0+ 支持) -
-O force-command="/usr/local/bin/restricted-shell":对特定角色限制可用命令,防越权操作
服务端强制执行不回退
只签发短期证书没用,必须让服务器拒绝一切非证书路径:
- 在
/etc/ssh/sshd_config中禁用传统密钥回退:AuthorizedKeysCommand none - 关闭密码登录:
PasswordAuthentication no,且确保PubkeyAuthentication yes - 启用吊销检查:
RevokedKeys /etc/ssh/revoked_keys,并定期更新该文件 - 重启前务必运行
sshd -t验证配置,避免语法错误导致服务中断
客户端自动加载与内存保护
用户不该看到私钥文件,也不该手动指定证书路径:
- 证书文件(如
id_ed25519-cert.pub)和对应私钥放在~/.ssh/下,同名即自动配对 - 通过
~/.ssh/config统一约束:CertificateFile ~/.ssh/id_ed25519-cert.pub,避免遗漏 - 推荐使用支持内存驻留的CLI工具(如Infisical CLI),私钥不落盘,连接断开后立即清空
- 若用OpenSSH原生命令,可加
-o IdentitiesOnly=yes防止自动尝试其他密钥干扰证书流程











