Como converter a chave pública SSH do formato PEM para DER?

6

Gostaria de converter uma chave pública existente (gerada usando ssh-keygen ) de PEM -format para DER -format

Eu tentei:

openssl rsa -in ~/.ssh/id_rsa.pub -inform PEM -pubin -outform DER -out ~/.ssh/id_rsa.pub.der

Infelizmente, isso gera o seguinte erro:

unable to load Public Key
139946985690784:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: PUBLIC KEY

O arquivo ~/.ssh/id_rsa.pub contém uma chave pública; cat ~/.ssh/id_rsa.pub dá:

ssh-rsa ...... user@machine

O que estou fazendo de errado?

    
por Edward 05.08.2015 / 16:20

1 resposta

6

O formato de chave pública OpenSSH é diferente do formato PEM. Você precisa executar ssh-keygen para convertê-lo .

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM >pubkey.pem

Em seguida, converta-o para o formato DER usando openssl rsa .

openssl rsa -RSAPublicKey_in -in pubkey.pem -inform PEM -outform DER -out ~/.ssh/id_rsa.pub.der -RSAPublicKey_out

Observe que você também precisa especificar -RSAPublicKey_in (não -pubin ) e -RSAPublicKey_out para mantê-lo como Chave pública RSA (PKCS # 1).

    
por 05.08.2015 / 16:34