我们想要使用 X509 证书测试与 OpenSSH 的连接来自 Roumen Petrov 的 pkixssh 分叉。
我真的不明白完整的身份验证是如何进行的,特别是如何创建符合 X509 标准的证书以进行公钥证书验证。
因此,我将首先解释我如何理解它,以及我将遵循的完整过程,以测试“客户”和一个“服务器”一台装有 OpenSSH 的 PKIXSSH 分支的机器,使用 X509 证书。为了进行测试,我们将使用第三台机器,我们称之为“控制机器”,充当“认证机构”的机器
为了了解其工作原理,我阅读了以下文档:
- “通过 SSH 实现可扩展且安全的访问”,来自 Facebook:了解认证机构在公钥验证中的作用非常有用。
- “如何使用 SSH 和 X509 证书”,来自 Gentoo 论坛:一个非常好的、需要的指南
- “用于 SSH 的 x509 证书”,来自博客“Linux Attitude”的帖子:另一个指南,法语版
简单总结一下,如果我理解正确的话,它的工作原理如下:
- X509 是签署公钥的标准。如果知道认证机构,则签名的公钥被视为有效。
- 我们可以为主机和用户签署公钥
- 使用 X509 证书,我们可以登录 OpenSSH 服务器,而无需使用密码,也无需使用传统的 OpenSSH 私钥-公钥身份验证。这意味着无需在目标服务器上复制用户公钥。
- 如果我们对主机使用 X509 证书,那么客户端将信任 OpenSSH 服务器,而无需在 known_host 文件中手动添加其公钥。
我们要做两个测试:
- 使用 X509 证书测试用户从客户端计算机到服务器的连接
- 第二步,添加服务器主机的身份验证
我得出的结论是,必须采取下一步行动
在“控制”机器中:
- 为我们的测试认证机构配置并创建密钥
- 将公共证书颁发机构密钥发送到“服务器”计算机的 OpenSSH 守护进程,以便我们的 CA 得到认可
在“客户端”机器中:
- 为用户创建私钥和公钥
- 将公钥发送到控制机,由 CA 进行签名
- 将证书添加到私钥文件,以便将其呈现给服务器
此时一切都应该准备就绪,我们可以测试连接了
我理解得对吗?
答案1
最后我理解并测试了连接:-)。
我在刚刚部署的博客上写了一篇文章(以一种快速而粗糙的方式,该博客很简单并且不是很漂亮,但很有用)。
您可以在文章中阅读有关该测试的完整描述“如何使用 X509 证书进行 OpenSSH”
非常感谢 Roumen Petrov 对我在产品邮件列表中的电子邮件的回复。