我可以使用 CA 证书来验证 SSH 服务器吗?

我可以使用 CA 证书来验证 SSH 服务器吗?

我管理一个 SSH 服务器,我想在客户端尝试进行身份验证时对其进行验证。我读过几个教程(如何创建 SSH CA 来使用 Ubuntu 验证主机和客户端使用 OPENSSH 证书认证)都描述了我如何使用自签名CA 为我的 SSH 服务器公钥签名。但在这种情况下,我已经拥有 GeoTrust 的 CA 证书,我想使用它。

按照通常的程序来签署ssh_host_rsa_key.pub文件是否正确?

提前致谢。

答案1

您所参考的指南讨论的是 OpenSSH 证书,而不是像 GeoTrust 那样的 x509 证书。它们是完全不同的东西。

如果您想使用 OpenSSH 方法(我非常喜欢并且在工作和私人场合都使用过。甚至 Facebook 也使用它):https://code.facebook.com/posts/365787980419535/scalable-and-secure-access-with-ssh/) 您将使用常规私钥来签署服务器密钥。使用此方法时,无需 CA 证书,只需私钥。

只需使用 ssh-keygen 创建一个新密钥对,并确保私钥保密。然后,您可以按照所参考的指南来签署您的主机密钥。我自己也写了一个指南,您可以在这里找到:https://framkant.org/2016/10/setting-up-a-ssh-certificate-authority-ca/

当主机密钥被签名后,您可以告诉您的客户信任您的“签名密钥”的公共部分,但在known_hosts文件中放入如下内容:

@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3pcm4IJGw76YKZSrf7pZA6s3Hu9eRzKbyzKPgg5OkBWU9ztUz2e1bXtR0UDqQKuOUx+ZDx6wmR3rVRM/BhYt1oeAv6rhxNRW2XPiakpn3EzuEWlbp68QRY8p+k6gjy7cnvF2uyaP0R0Ov819tTMHkdS3Rn57m7pfFk+tuRKLjJnQN2g6uxT+PBJonTQr2XcS5oAzwjel1x7xLqmz0MMrE98uE0GaZHxf/hioXOHt1ihzTF+GPqZ31ZrR3GIWtFEKtvcroaiS25VIV9W39LfVh7RRZTh8oCrjcEdoeFKUKA1PpqblsJhqg1XU2/xa9CAKb6SHb7gwQ18nUaQ/Sk6qYJMgkwWUtXbwS1RIm1k5QlKk8VD4H10jyqiAUBC8SHfNxnqOwKe275AfOVc/iuh4F2NsrIuHfh8tno5LqWSP63D3gXpXXm/4j3Sop2NqNz6EIqoqj0HPIL21/SneJgWXS7xxV/ShgnLVGB0dsJf8PsCnsVt0s5thO22VvE/IVQ1KM/ac1lEafBeSZsuPiOfcIeZu9mm4DfuoyqaHmnV6yBguW6zb894IdcYXsrVnMy3Hp85gnymEZn/qfPJ+dhNbBAANgjWphz5ZaBKdrpgCESz8Ka9S6V7fXr2ikB21YiUKB7XuoPjDncOokSEHU0p5iMQjE+Le7K3nOTtokhrZjXw==

答案2

回答

您声明,您拥有 CA 证书。如果这是正确的,那么您就拥有“证书颁发机构证书”,也就是说,您拥有可用于签署其他证书的证书,您可以。

如果您拥有 GeoTrust 颁发的普通 SSL 证书,则不能使用它来签署 SSH 服务器证书。请从 GeoTrust 检查您的信息,以了解您拥有哪种证书。

如果你遇到第二种情况,请考虑解决方案可能转换证书。

解释

您不太可能属于第一种情况。这意味着您拥有受信任的根证书或受 (公共) 客户端信任的中间证书 (也就是说,您可以完成 GeoTrust 的工作)。只有当您处于封闭环境中 (作为内部办公网络) 并且您拥有证书颁发机构时,这种情况才有可能。在您的问题中,您说您从 GeoTrust 获得了证书,因此我认为您属于第二种情况。
在那里,您可能需要转换证书以使它们具有正确的格式,请点击链接查看它们是否解决了您的问题。

答案3

这应该是一条评论,但是它太长了。

从您提出问题的方式来看,您似乎刚刚开始使用 ssh 和使用证书。是的,可以将 x509 证书与 ssh 一起使用,但这是一个非常深奥的配置,您在这方面还远远不够。

x509 证书是经过签名的公钥以及以规定格式呈现的规定元数据。您无需对其进行签名。

然后就是您是否使用来自客户端的证书而不是密钥对的问题。

但这一切的意义何在?您是否有根据证书中的元数据而不是密钥本身进行验证的客户端?愿意分享吗?

相关内容