我正在尝试设置OpenSSH主机证书,以减少在主机来来去去时管理ssh_known_hosts的工作。我创建了一个SSH密钥对作为CA密钥。然后设置Ansible,使用openssh_cert模块用CA对主机密钥进行签名,将HostCertificate /path/ to /signed_ host _key添加到sshd_config,并重新加载sshd。
但是,在我将证书密钥添加到ssh_known_hosts之后,仍然会提示我确认主机的真实性。当我登录到主机并检查日志时,我会看到以下错误消息:
error: No matching private key for certificate在证书签名密钥的上下文中,该错误消息意味着什么?签名只创建一个证书签名的公钥,我知道我不应该上传CA私钥到主机。
我搜索了这条错误消息,并得到了一堆关于创建键或创建SSH证书的一般性讨论,或者如果我搜索带有引号的openssh源代码列表。
发布于 2019-07-27 14:35:59
在证书签名主机密钥的上下文中,该错误消息意味着签名的主机密钥与相应的主机密钥不匹配。例如,如果生成一个签名的主机密钥,则完全重新创建主机(创建一个新的主机键),但仍然尝试使用针对旧主机版本创建的签名主机密钥。
在撰写本文时,如果签名密钥或主机密钥发生了更改,则Ansible openssh_cert模块没有注意到。这意味着,如果您签署了一个主机密钥,然后主机键更改,openssh_cert将不会注意到。您必须使用force: yes来使它根据更新的主机键重新生成签名的主机密钥。
)自我回答,这样别人就能更容易地找到它。最后,我注意到主机密钥文件比签名的主机密钥文件更新,并发现当主机密钥更改时,openssh_cert没有重新生成签名的主机密钥。)
https://serverfault.com/questions/976965
复制相似问题