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