2012-11-25 69 views
2

我正在開發一個項目,以便從用戶智能卡中自動提取公鑰DER編碼證書,並將其轉換爲ssh-rsa公鑰表單。然後將ssh-rsa公鑰作爲AD中的用戶屬性發布。從那裏,puppet將使用ldap查詢獲取ssh公鑰,並將其放置在授權用戶的authorized_keys文件中。將DER編碼證書轉換爲ssh-rsa公鑰

我遇到的問題是,在Windows中似乎沒有辦法將DER編碼.cer文件轉換爲ssh-rsa密鑰。如果證書被移動到用戶的主目錄,然後就可以運行:

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

然後SSH-凱基可以創建使用ssh-RSA公鑰:

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

因此,沒有人知道的一種Windows的方式來進行此轉換?如果您需要更多信息,請告訴我。

回答

0

有一個辦法,你需要使用:

Import-Certificate 

要證書導入用戶/本地計算機存儲。然後,您可以將公鑰像這樣(當然這得到了具有每一個證書的公鑰,所以將其更改爲適合您的需要):

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

這是使用PowerShell的3

1

你需要先將DER編碼文件轉換爲PEM。以下是您需要做的事情:

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