You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux OpenSSH忽略签名密钥创建时间或ssh-keygen设置早期签名日期咨询

回答

以下是对应你两个需求的落地方案:

1. 调整SSH密钥签名的有效期(更易实现,推荐)

ssh-keygen在签名密钥时支持通过-V参数显式指定证书的生效、过期时间,你可以直接设置远早于镜像编译时间的生效时间,以及足够覆盖设备生命周期的过期时间,从根源避免系统时间不准导致的校验失败。
示例签名命令如下:

ssh-keygen -s user_ca -I user_identity -n principal -V 19700101000000:21001231235959 id_rsa.pub

涉及的核心参数说明:

  • -s user_ca:指定用于签名的CA私钥
  • -V validity_interval:指定证书有效期,格式为[生效时间]:[过期时间],示例中设置的1970年1月1日~2100年12月31日可覆盖绝大多数嵌入式设备的使用周期
  • 其余参数可根据你原有签名流程的需求保留,比如授权主体、密钥标识等

这种方案不需要修改SSH服务端配置,适配所有支持SSH证书的OpenSSH版本,改造成本最低。

2. 配置SSH服务端忽略证书时间校验

OpenSSH原生没有提供直接关闭证书时间校验的配置参数,有两种可行的实现路径:

  • 启动sshd前先强制设置系统时间为一个固定的、晚于所有证书生效时间的基准值(比如镜像编译时间+1天),如果后续有NTP等时间同步服务再更新系统时间即可,这种方案不需要修改SSH组件
  • 自行修改OpenSSH源码,删除sshkey_cert_verify函数中对证书valid after、valid before字段的时间校验逻辑,重新编译后部署到设备中,这种方案需要一定的开发工作量,且后续升级OpenSSH版本需要重新合入补丁

注意:两种方案都会降低SSH证书的安全性,有效期超长的证书一旦泄露会带来长期的风险,修改源码关闭校验则会完全失去证书有效期的安全防护能力,请根据你的业务场景做好风险兜底。

内容的提问来源于stack exchange,提问作者IoTPanic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:02