Làm cách nào để chuyển đổi khóa công khai SSH từ định dạng PEM sang DER?


8

Tôi muốn chuyển đổi khóa công khai hiện có (được tạo bằng cách sử dụng ssh-keygen) từ PEM-format sang DER-format

Tôi đã thử:

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

Thật không may, điều này đưa ra lỗi sau:

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

Các tập tin ~/.ssh/id_rsa.pubcó chứa một khóa công khai; cat ~/.ssh/id_rsa.pubcho:

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

Tôi đang làm gì sai?

Câu trả lời:


9

Định dạng khóa công khai OpenSSH khác với định dạng PEM. Bạn phải chạy ssh-keygenđể chuyển đổi nó.

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

Sau đó chuyển đổi nó sang định dạng DER bằng cách sử dụng openssl rsa.

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

Lưu ý rằng bạn cũng phải chỉ định -RSAPublicKey_in(không -pubin) và -RSAPublicKey_outgiữ nó là Khóa công khai RSA (PKCS # 1).


Không hoạt động trong MacOS:unknown option -RSAPublicKey_in
nakajuice

Hoạt động trên MacOS 10.14.6 với openssl 2.6.5
Leo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.