将DER编码证书转换为ssh-rsa公钥

时间:2012-11-25 13:51:57

标签: powershell vbscript x509 ssh-keys pki

我正在开发一个项目,用于自动从用户智能卡中提取公钥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进行转换的方法吗?如果您需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

您需要先将DER编码文件转换为PEM。以下是您需要做的事情:

openssl x509 -in <your DER encoded File> -inform DER -out username.crt -outform PEM

答案 1 :(得分:0)

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

Import-Certificate

将证书导入用户/本地计算机商店。然后,您可以像这样获取公钥(这样就可以获得每个拥有一个公钥的公钥,因此根据您的需要进行更改):

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

这是使用PowerShell 3。