OpenSSH 支持使用证书颁发机构签署用户密钥。来自man ssh-keygen
:
ssh-keygen supports signing of keys to produce certificates that may
be used for user or host authentication. Certificates consist of a
public key, some identity information, zero or more principal (user
or host) names and a set of options that are signed by a Certification
Authority (CA) key
在纯 Linux 环境中,SSH 证书非常容易使用。服务器部分(TrustedUserCAKeys
)没有问题,客户端也ssh -i
做得很好。
我需要能够从 Windows SSH 客户端使用 OpenSSH 证书(该项目是在系统管理员使用公司特定的身份验证方案进行身份验证后,向他们提供短期 SSH 证书)。
Cygwin 不是一个选项(用锤子杀死一只苍蝇,并且可能不被 Windows 管理员接受),PuTTY 不识别 OpenSSH 证书。
还有什么其他选择?
答案1
如果您最终无法找到使用 PuTTY 证书的方法。有比 Cygwin 更轻量的方法可以在 Windows 机器上获取实际的 OpenSSH 客户端。最有可能想到的候选方法是Git 的 Windows 发行版。
有一个标准安装版本或便携版本,您只需解压并运行即可。它基本上是 bash、git 和 ssh。
稍微重一点,但至少是操作系统原生的适用于 Linux 的 Windows 子系统如果您拥有 Windows 10 周年更新或更高版本,它就可以工作。
答案2
OpenSSH 现在作为 Windows 10 中的“可选功能”受到支持。据称,OpenSSH 7.6p1 应该在通常的位置可用:控制面板,选择程序 | 程序和功能 | 打开或关闭 Windows 功能。您也可以通过在 Windows 开始提示符中键入“optionalFeatures”直接访问此向导。
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
希望他们不要取消证书认证,就像他们对 OpenSSH 服务器“功能”所做的那样
答案3
从这里:https://burnz.wordpress.com/2007/12/14/ssh-convert-openssh-to-ssh2-and-vise-versa/
您可以使用ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub
它将密钥从 OpenSSH 转换为 SSH2。在将密钥分发给客户端之前在服务器端执行此操作吗?
最终,您将生成由证书签名的供客户端使用的临时 .pub 密钥,因此它们只需要采用 PuTTY 可以接受的格式。
假设你的工作流程如下:https://blog.habets.se/2011/07/OpenSSH-certificates