Định dạng khóa công khai SSH


11

Tôi có một khóa công khai ở định dạng:

---- BEGIN SSH2 PUBLIC KEY ----

Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==

---- END SSH2 PUBLIC KEY ----

Thông thường tôi thấy các khóa ở định dạng như thế này:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]

Tôi chỉ có thể sao chép khóa đầu tiên trong tệp ủy quyền hoặc tôi phải sửa đổi bằng cách nào đó để nó trông giống như khóa thứ hai? Tôi nghĩ rằng cái đầu tiên được tạo bởi PUTTYgen trong khi cái thứ hai được tạo bởi ssh-keygen.

Câu trả lời:


16

sử dụng ssh-keygen -iđể chuyển đổi định dạng tương thích SSH2 sang định dạng tương thích OpenSSH.

từ man ssh-keygen:

-i Tùy chọn này sẽ đọc tệp khóa riêng tư (hoặc công khai) không được mã hóa ở định dạng tương thích SSH2 và in khóa riêng tư (hoặc công khai) tương thích OpenSSH sang thiết bị xuất chuẩn. ssh-keygen cũng đọc Định dạng tệp khóa công khai RFC 4716 SSH. Tùy chọn này cho phép nhập khóa từ một số triển khai SSH thương mại.


4

Bạn phải chuyển đổi khóa công khai sang quy ước openssh:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]== somename-20060227

Ngoài ra, hãy đảm bảo rằng khóa chiếm chính xác một dòng và không ngắt dòng được giới thiệu trong khi sao chép.


4

Đây là câu trả lời đầy đủ, chính xác:

ssh-keygen -i -m PKCS8 -f public-key.pem


1
"RFC4716" là key_format mặc định và -m dường như là để chỉ định định dạng của INPUT trong trường hợp này, không phải đầu ra, vì vậy bạn đã đúng.
JimNim

Về mặt kỹ thuật, câu trả lời "đúng" của alexus KHÔNG phải là sai, vì câu trả lời đó không đánh vần đầy đủ cú pháp - chỉ chỉ nên sử dụng cờ chính nào, không cần phải kiểm tra cú pháp / cách sử dụng trong trang man.
JimNim

2

Chỉ cần viết lại khóa của bạn ở định dạng phù hợp với authorized_keys:

keytype keybody keyname

Hãy nhớ rằng dấu "==" là các trình giữ chỗ cần thiết để giữ cho chiều dài khóa bằng với độ dài mong muốn.


4
Dấu "==" là phần đệm Base64
Andrew

Làm thế nào để tôi biết nếu RSA hoặc DSA của nó?
Hans
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.