Định dạng ssh-keygen .pub hoạt động như thế nào với các tệp .pem?


17

Các ssh-keygenlệnh tạo ra .pubcác tập tin mà nó mô tả là "file khóa công khai", nhưng họ là một định dạng hoàn toàn khác với hầu hết các "file khóa công khai" Tôi thường thấy, mà là ở định dạng PEM. Các ssh-keygentập tin kiểu như thế này:

ssh-rsa AAAAB3NzaC1... user@host

... Trong khi các tệp PEM trông như thế này:

-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----

Là hai định dạng này có thể thay thế cho nhau, hoặc chúng đang thực hiện một mục đích khác nhau cơ bản? Tôi đã gặp phải vấn đề này vì tôi muốn lấy dấu vân tay khóa RSA2 của tệp khóa công khai được mã hóa PEM của mình, nhưng phương pháp thường được đề xuất để làm điều đó ( ssh-keygen -l) nói rằng tệp được mã hóa PEM của tôi "không phải là tệp khóa công khai".

Nhân tiện, tôi biết câu trả lời này , nhưng nó không bao gồm các tệp .pub được tạo bởi ssh-keygen.


1
Chà, khóa công khai SSH không giống như chứng chỉ ở định dạng PEM. Bạn đã xem cái này chưa? serverfault.com/questions/114301/ từ
cjc

2
Điều đặc biệt quan trọng ở đây là bạn có thể đang xem OpenSSH chứ không phải SSH.COM hoặc các triển khai khác ít phổ biến hơn. Khóa công khai được mã hóa PEM tiêu chuẩn thực sự hợp lệ đối với một số triển khai ít phổ biến hơn. Tôi biết một hộp VMS tôi kết nối để yêu cầu tệp PEM.
Zoredache

@cjc, Phải, đó không phải là chứng chỉ, nhưng nó thậm chí không giống với những gì bạn nhận được khi chạy openssl rsa -in privatekey_rsa -pubout, đây thực sự là một khóa công khai và không phải là chứng chỉ.
Zoredache

Câu trả lời:


8

Các cặp khóa OpenSSH không phải là PEM hoặc bất kỳ tiêu chuẩn x500 nào khác. Các phiên bản mới của OpenSSH có thể sử dụng các khóa PEM X.509, nhưng đó là một quả bóng sáp khác tách biệt với ssh-keygen và phải được cấu hình rõ ràng. Như tôi biết, không có triển khai chính nào của SSH sử dụng các định dạng chính xác giống như các định dạng khác.

Như Zoredache lưu ý , nếu bạn đang sử dụng một thứ gì đó không phải là OpenSSH (deus iuvo vos), thì nó có thể bị mờ đi gần như mọi thứ.


1
Vâng, thực sự, tôi đã nhầm lẫn SSH và SSL! Trình nền OpenSSH của tôi trên thực tế đang sử dụng một .pubtệp trên máy chủ của tôi, tại /etc/ssh/ssh_host_rsa_key.pubvà không sử dụng bất kỳ kiến ​​trúc thẩm quyền chứng chỉ SSL nào. Khi tôi chạy ssh-keygen -ltrên tập tin đó, nó đã cho tôi dấu vân tay khóa RSA2 của máy chủ.
Jez
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.