Như Roland đã đề cập trong câu trả lời của họ, đó là một cảnh báo rằng ssh-agent
không hiểu định dạng của khóa công khai và thậm chí sau đó, khóa công khai sẽ không được sử dụng cục bộ.
Tuy nhiên, tôi cũng có thể giải thích và trả lời lý do tại sao lại có cảnh báo đó. Nó chỉ đơn giản là tóm tắt thực tế là PuTTY Key Generator tạo ra hai định dạng khóa công khai khác nhau tùy thuộc vào những gì bạn làm trong chương trình.
Lưu ý: Trong suốt phần giải thích của tôi, các tệp chính mà tôi sẽ sử dụng / tạo sẽ được đặt tên id_rsa
với phần mở rộng thích hợp của chúng. Hơn nữa, để thuận tiện cho việc sao chép-dán, thư mục mẹ của các khóa sẽ được giả định là ~/.ssh/
. Điều chỉnh các chi tiết này cho phù hợp với nhu cầu của bạn như mong muốn.
Các định dạng
Liên kết đến tài liệu PuTTY có liên quan
SSH-2
Khi bạn lưu khóa bằng Trình tạo khóa PuTTY bằng nút "Lưu khóa công khai", khóa đó sẽ được lưu ở định dạng do RFC 4716 xác định .
Thí dụ:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH
Trái với suy nghĩ của nhiều người, định dạng này không được lưu bởi trình tạo. Tuy nhiên, nó được tạo và hiển thị trong hộp văn bản có tiêu đề "Khóa công khai để dán vào tệp OpenSSH allow_keys". Để lưu nó dưới dạng tệp, bạn phải sao chép thủ công từ hộp văn bản và dán vào tệp văn bản mới.
Đối với khóa hiển thị ở trên, đây sẽ là:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
Định dạng của khóa đơn giản ssh-rsa <signature> <comment>
và có thể được tạo bằng cách sắp xếp lại tệp có định dạng SSH-2.
Tạo lại khóa công khai
Nếu bạn đang sử dụng ssh-agent
, bạn cũng sẽ có quyền truy cập vào ssh-keygen
.
Nếu bạn có ( id_rsa
tệp) Khóa Riêng OpenSSH , bạn có thể tạo Tệp Khóa Công khai OpenSSH bằng cách sử dụng:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
Nếu bạn chỉ có Khóa cá nhân PUTTY ( id_rsa.ppk
tệp), trước tiên bạn sẽ cần chuyển đổi nó.
- Mở Trình tạo khóa PuTTY
- Trên thanh menu, nhấp vào "Tệp"> "Tải khóa cá nhân"
- Chọn
id_rsa.ppk
tệp của bạn
- Trên thanh menu, nhấp vào "Chuyển đổi"> "Xuất khóa OpenSSH"
- Lưu tệp dưới dạng
id_rsa
(không có phần mở rộng)
Bây giờ bạn đã có OpenSSH Private Key, bạn có thể sử dụng ssh-keygen
công cụ như trên để thực hiện các thao tác trên khóa.
Phần thưởng: Định dạng khóa công khai được mã hóa PEM PKCS # 1
Thành thật mà nói, tôi không biết chìa khóa này được sử dụng để làm gì vì tôi không cần nó. Nhưng tôi có nó trong ghi chú của mình mà tôi đã đối chiếu trong nhiều năm và tôi sẽ đưa nó vào đây vì sự tốt lành hữu ích. Tệp sẽ trông như thế này:
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
Tệp này có thể được tạo bằng Khóa Riêng OpenSSH (như được tạo trong "Tạo lại Khóa Công cộng" ở trên) bằng cách sử dụng:
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
Ngoài ra, bạn có thể sử dụng Khóa công khai OpenSSH bằng:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
Người giới thiệu: