Hướng dẫn này có tiêu đề: SSH: Chuyển đổi OpenSSH sang SSH2 và ngược lại xuất hiện để cung cấp những gì bạn đang tìm kiếm.
Chuyển đổi khóa OpenSSH sang khóa SSH2
Chạy phiên bản OpenSSH ssh-keygen
trên khóa công khai OpenSSH của bạn để chuyển đổi nó thành định dạng cần thiết của SSH2 trên máy từ xa. Điều này phải được thực hiện trên hệ thống chạy OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Chuyển đổi khóa SSH2 thành khóa OpenSSH
Chạy phiên bản OpenSSH ssh-keygen
trên khóa công khai ssh2 của bạn để chuyển đổi nó thành định dạng cần thiết của OpenSSH. Điều này cần phải được thực hiện trên hệ thống chạy OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Hướng dẫn tiếp tục chỉ ra cách tạo cả hai loại khóa khác nhau và cách xuất chúng sang các định dạng khác.
Sử dụng cái này cho khóa riêng & công khai?
Theo trang người đàn ông, câu trả lời sẽ là có. Nhìn vào trang man cho ssh-keygen
nó biết các công -e
tắc sau:
-e This option will read a private or public OpenSSH key file and print
the key in RFC 4716 SSH Public Key File Format to stdout. This option
allows exporting keys for use by several commercial SSH implementations.
Nhưng trong thực tế, có vẻ như ssh-keygen
không thể chuyển đổi khóa riêng, chỉ có khóa công khai.
Ví dụ:
# Make a new RSA key-pair
$ ssh-keygen -t rsa -f newkey
# attempt to extract the private key
$ ssh-keygen -e -f newkey > newkey_e
# attempt to extract the public key
$ ssh-keygen -e -f newkey.pub > newkey.pub_e
# Notice the supposed extracted private key (newkey_e) and the corresponding extracted public key (newkey.pub_e) have identical `md5sum`'s.
$ for i in *;do md5sum $i;done
d1bd1c12c4a2b9fee4b5f8f83150cf1a newkey
8b67a7be646918afc7a041119e863be5 newkey_e
13947789d5dcc5322768bd8a2d3f562a newkey.pub
8b67a7be646918afc7a041119e863be5 newkey.pub_e
Nhìn vào các khóa trích xuất kết quả xác nhận điều này:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Googling một chút Tôi đã tình cờ thấy điều này từ một bài viết có tiêu đề: Làm thế nào để bạn chuyển đổi các tệp khóa riêng tư OpenSSH sang SSH . Trang web dường như lên xuống nhưng khi tìm kiếm trong bộ nhớ cache của Google cho trang này, tôi đã tìm thấy những điều sau đây:
Làm cách nào để chuyển đổi các tệp khóa riêng tư OpenSSH sang các tệp khóa riêng của SSH.com?
Nó không thể được thực hiện bởi chương trình ssh-keygen mặc dù hầu hết các trang man nói rằng nó có thể. Họ không khuyến khích bạn sử dụng nhiều khóa công khai. Vấn đề duy nhất là RCF sẽ không cho phép bạn đăng ký nhiều hơn một khóa công khai.
Bài viết tiếp tục đề cập đến một phương pháp để chuyển đổi khóa riêng mở sang khóa riêng ssh.com thông qua việc sử dụng công cụ của PuTTY puttygen
. LƯU Ý: puttygen
có thể chạy từ Windows & Linux.
Mở 'puttygen' và tạo cặp khóa công khai / riêng tư 2048 bit rsa. Hãy chắc chắn rằng bạn thêm mật khẩu sau khi nó được tạo. Lưu khóa công khai là "puttystyle.pub" và lưu khóa riêng dưới dạng "puttystyle". Chương trình putty và chương trình SSH.com có chung định dạng khóa chung nhưng chương trình putty và OpenSSH có các định dạng khóa chung khác nhau. Chúng tôi sẽ quay lại vấn đề này, sau. Bạn sẽ có thể tải cả hai phím puttystyle vào chương trình putty. Tuy nhiên, các định dạng khóa riêng cho putty và SSH.com không giống nhau và do đó bạn sẽ phải tạo một tệp được chuyển đổi. Chuyển đến menu chuyển đổi và xuất khóa SSH.com. Lưu nó dưới dạng "sshstyle". Bây giờ hãy quay lại menu chuyển đổi và xuất khóa openssh. Lưu nó dưới dạng "openssh". Những cái tên này là tùy ý và bạn có thể chọn tên của riêng bạn. Sau này, bạn sẽ phải thay đổi tên để cài đặt trên máy OpenSSH. Xem bên dưới.
Với những điều trên tôi đã sử dụng các cách sau bằng cách sử dụng puttygen
cặp khóa công khai / riêng tư được tạo trước đó của chúng tôi:
# generate ssh.com private key from private openssh key
$ puttygen newkey -O private-sshcom -o newkey.puttygen-sshcom
# generate ssh.com public key from private openssh key
$ puttygen newkey -O public -o newkey.pub_puttygen-sshcom
# generate openssh public key from private openssh key (for confirmation)
$ puttygen newkey -O public-openssh -o newkey.pub_puttygen-openssh
Nhận xét là khác nhau, do đó bạn không thể so sánh các tệp kết quả, vì vậy nếu bạn nhìn vào một vài dòng đầu tiên của khóa, đó là một dấu hiệu khá tốt cho thấy các lệnh trên đã thành công.
So sánh các khóa ssh.com công khai:
$ tail -n +3 newkey.pub_e | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
$ tail -n +3 newkey.pub_puttygen-sshcom | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
So sánh các khóa mở công khai:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY