Apakah ada cara untuk mengonversi pasangan kunci OpenSSH yang ada ke pasangan kunci SSH2 (format ssh.com)?
UPD :karena ada beberapa jawaban tentang ssh-keygen
tiba-tiba muncul, saya akan menjelaskan dari mana saya berasal (juga akan menjadi jawaban yang bagus tentang "apa yang telah Anda coba?").
$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical
Dengan kata lain, ssh-keygen
mengembalikan kunci yang sama untuk kunci input pribadi dan publik (hash dari file asli jelas berbeda, saya telah memeriksanya dua kali untuk memastikan bahwa itu adalah kunci privat dan publik yang valid). Sepertinya ssh-keygen
hanya menghasilkan kunci publik untuk kunci input pribadi atau publik.
Saya melakukan kesalahan atau itu adalah perilaku normal?
Jawaban yang Diterima:
Tutorial berjudul:SSH:Convert OpenSSH ke SSH2 dan sebaliknya tampaknya menawarkan apa yang Anda cari.
Konversi kunci OpenSSH ke kunci SSH2
Jalankan ssh-keygen
versi OpenSSH pada kunci publik OpenSSH Anda untuk mengubahnya menjadi format yang dibutuhkan oleh SSH2 pada mesin jarak jauh. Ini harus dilakukan pada sistem yang menjalankan OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Konversi kunci SSH2 ke kunci OpenSSH
Jalankan ssh-keygen
versi OpenSSH pada kunci publik ssh2 Anda untuk mengubahnya menjadi format yang dibutuhkan oleh OpenSSH. Ini perlu dilakukan pada sistem yang menjalankan OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Tutorial selanjutnya menunjukkan cara menghasilkan berbagai jenis kunci dan cara mengekspornya ke format lain.
Gunakan ini untuk kunci privat &publik?
Menurut halaman manual, jawabannya adalah ya. Melihat halaman manual untuk ssh-keygen
itu menyatakan yang berikut untuk -e
beralih:
-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.
Namun dalam praktiknya akan terlihat bahwa ssh-keygen
tidak dapat mengonversi kunci pribadi, hanya kunci publik.
Misalnya:
# 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
Melihat kunci yang diekstraksi yang dihasilkan mengonfirmasi hal ini:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Googling sedikit saya menemukan uraian ini dari sebuah artikel berjudul:Bagaimana Anda mengonversi file kunci Pribadi OpenSSH ke SSH. Situs tampaknya naik turun tetapi mencari di cache Google untuk halaman ini, saya menemukan uraian berikut:
Bagaimana Anda mengonversi file kunci Pribadi OpenSSH ke file kunci Pribadi SSH.com?
Itu tidak dapat dilakukan oleh program ssh-keygen meskipun sebagian besar halaman manual
mengatakan bisa. Mereka mencegahnya sehingga Anda akan menggunakan beberapa kunci
publik. Satu-satunya masalah adalah RCF tidak mengizinkan Anda untuk mendaftarkan lebih dari satu
kunci publik.
Artikel selanjutnya membahas metode untuk mengonversi kunci pribadi openssh ke kunci pribadi ssh.com melalui penggunaan puttygen
PuTTY alat. CATATAN: puttygen
dapat dijalankan dari Windows &Linux.
Buka 'puttygen' dan buat pasangan kunci publik/pribadi 2048 bit rsa.
Pastikan Anda menambahkan kata sandi setelah dibuat. Simpan kunci publik
sebagai "puttystyle.pub" dan simpan kunci pribadi sebagai "puttystyle".
Program dempul dan program SSH.com berbagi format kunci publik yang sama
tetapi program dempul dan OpenSSH memiliki format kunci publik yang berbeda.
Kami akan kembali ke ini nanti. Anda harus dapat memuat kedua
kunci gaya dempul ke dalam program dempul. Namun, format kunci pribadi
untuk dempul dan SSH.com tidak sama sehingga Anda harus
membuat file yang dikonversi. Buka menu konversi dan ekspor
kunci SSH.com. Simpan sebagai "sshstyle". Sekarang kembali ke menu konversi
dan ekspor kunci openssh. Simpan sebagai "openssh". Nama-nama ini
bersifat arbitrer dan Anda dapat memilih sendiri. Anda harus mengubah
nama untuk instalasi pada mesin OpenSSH nanti. Lihat di bawah.
Mengingat hal di atas, saya mengerjakan yang berikut menggunakan puttygen
, menggunakan pasangan kunci openssh pribadi/publik yang dibuat sebelumnya:
# 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
Komentarnya berbeda sehingga Anda tidak bisa hanya membandingkan file yang dihasilkan, jadi jika Anda melihat beberapa baris pertama tombol, itu adalah indikator yang cukup bagus bahwa perintah di atas berhasil.
Terkait:Ubuntu – Bagaimana cara mengkonfigurasi alamat IP eksternal untuk tamu LXC?Perbandingan kunci ssh.com publik:
$ 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
Perbandingan kunci openssh publik:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY