我并不是说简单地将 x.509 证书的公共 RSA 密钥放入~/.ssh/authorized_keys
- 我正在寻找一种设置 ssh 的方法,以便自动授予由预定义 CA 签名的 x.509 证书访问关联的用户帐户。RFC 6187似乎建议了这样的功能,但我找不到任何关于此的文档,或者它是否在 OpenSSH 中实现。
这是我想要做的更详细的描述:
- 设置了 CA(“SSH-CA”)
- 此 CA 用于签署用户证书
keyUsage=digitalSignature
(可能还有id-kp-secureShellClient
extendedKeyUsage 字段) - 此证书现在可用于登录服务器。服务器不需要公钥存在于
authorized_keys
. 相反,它被设置为信任 SSH-CAsubjectAltName
在进行通常的 RSA 身份验证
那么,(如何)使用 OpenSSH 可以实现这一点,如果需要补丁,如何将客户端修改保持在最低限度?
作为替代方案,我猜也可以使用任何 S/MIME 证书加上用户名到电子邮件地址的映射,而不需要自己的 CA。客户端也可以只使用私有 RSA 密钥,并且使用证书服务器从公钥获取证书,另外还提供了使用 PGP 证书的可能性(例如通过monkeysphere),而用户不需要任何关于这一切的知识只要他们只是提供一个公钥。
如果它本身不可能,我想我可以通过让服务器上的脚本自动检查通过openssl
(or gnupg
) 以其他方式提交的证书并将公钥放入相应的用户的authorized_keys
文件 - 虽然那时我可能或多或少地重新做monkeyshere项目......