2

我正在开发一个项目,以自动从用户智能卡中提取公钥 DER 编码证书,并将其转换为 ssh-rsa 公钥形式。然后 ssh-rsa 公钥将作为用户属性发布在 AD 中。从那里 puppet 将使用 ldap 查询获取 ssh 公钥并将其放置在相关用户的 authorized_keys 文件中。

我遇到的问题是,在 Windows 中似乎没有办法将 DER 编码的 .cer 文件转换为 ssh-rsa 密钥。如果将证书移动到用户主目录,则可以运行:

openssl x509 -inform pem -in username.cer -noout -pubkey > username.pub

然后 ssh-keygen 可以使用以下命令创建 ssh-rsa 公钥:

ssh-keygen -f username.pub -i -m PKCS8

那么有人知道Windows进行这种转换的方法吗?如果您需要更多信息,请告诉我。

4

2 回答 2

1

您需要先将 DER 编码文件转换为 PEM。这是您需要做的:

openssl x509 -in <your DER encoded File> -inform DER -out username.crt -outform PEM
于 2012-12-10T18:19:29.473 回答
0

有一种方法,你需要使用:

Import-Certificate

将证书导入用户/本地机器存储。然后,您可以像这样获取公钥(这会为每个拥有一个证书的证书获取公钥,因此请根据您的需要进行更改):

((get-childitem cert:\LocalMachine -Recurse) | Where-Object{$_.PublicKey}).GetPublicKey()

这是使用 PowerShell 3。

于 2012-11-25T16:13:08.280 回答