OpenSSH 5.4添加了一个新的证书authentication方法( 更改 )。
* Add support for certificate authentication of users and hosts using a new, minimal OpenSSH certificate format (not X.509). Certificates contain a public key, identity information and some validity constraints and are signed with a standard SSH public key using ssh-keygen(1). CA keys may be marked as trusted in authorized_keys or via a TrustedUserCAKeys option in sshd_config(5) (for user authentication), or in known_hosts (for host authentication). Documentation for certificate support may be found in ssh-keygen(1), sshd(8) and ssh(1) and a description of the protocol extensions in PROTOCOL.certkeys.
除ssh-keygen手册页中提到的内容外,是否有任何指南或文档? 手册页介绍了如何生成证书并使用证书,但似乎并没有提供关于证书颁发机构设置的许多信息。 例如,我可以使用中间CA签署密钥,并让服务器信任父CA?
这个关于新function的评论似乎意味着我可以将我的服务器设置为信任CA,然后设置签名密钥的方法,然后用户不必在服务器上发布各自的密钥。 这似乎也支持关键到期,这是很好的,因为摆脱旧/无效的键是更难的,那么应该是。 但是我希望find更多关于描述完成这个工作所需的总configurationCA,SSH服务器和SSH客户端设置的文档。
事实上,这些文档看起来相当稀疏。 该PROTOCOL.certkeys文件可能是您最好的地方去低级文件重新:这个function。
重新:使用中级CA的,看看这个报价从该文档:
不支持“链接”证书,其中签名密钥types是证书types本身。
如果我正在阅读,那么使用中间CA是明确不可能的。 总的来说,看起来这是一个非常简单的PKI实现,你应该把X.509 PKI世界中的大部分内容抛出去。
有趣的东西。
包含在OpenSSH源代码中的文件regress / cert-hostkey.sh和regress / cert-userkey.sh似乎提供了一个相当不错的概述,即该function涵盖了用CAvalidation和授权用户/主机的方式。
至于用户需要发布的密钥:从我收集的信息来看,只要用户提供的证书是正确签名的,并且对证书的限制不禁止用户访问该机器,他将被允许login。 没有需要发布。
我已经发布了如何在ServerFault上生成和使用ssh证书。
简而言之:
我得到的问题是如何撤销SSH证书。 不得不改变主机证书清楚地避免了拥有中央CA和主机证书的价值。