如何在Windows上使用OpenSSH证书?

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 )和客户TrustedUserCAKeys ssh -i做正确的工作。

我需要能够使用来自Windows SSH客户端的OpenSSH证书(该项目是通过使用公司特定的身份validationscheme对自己进行身份validation后,向系统pipe理员Windows工作站提供短期存在的SSH证书)。

Cygwin不是一个选项(用锤子杀死苍蝇,可能不被Windowspipe理员接受),PuTTY不能识别OpenSSH证书。

什么是其他选项?

如果你不能最终搞清楚用PuTTY来使用证书的方法。 有一种比Cygwin更轻量级的方式来获得Windows上的实际OpenSSH客户端。 想到的最可能的候选人是Git的Windows分布 。

有一个标准的可安装版本或便携式版本,您可以解压缩并运行。 这基本上是bash,git和ssh。 Git Bash

稍微重一点,但至less在操作系统上是Linux的Windows子系统,如果你有Windows 10周年更新或更新的版本,它可以工作。

从这个页面

  1. 从Putty网站下载puttygen.exe。执行puttygen.exe
  2. 点击File-> Load Private Key,从你的linux openssh生成的密钥中加载文件“id_rsa”并input密码(如果你使用的话)。
  3. 现在按键已经被加载,点击“保存私钥”button。 转换后的密钥将被保存为“id_rsa.ppk”。

该文件应该为腻子工作。

从这里: 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将接受的格式即可。

假设您的工作stream程如下所示: https : //blog.habets.se/2011/07/OpenSSH-certificates