Bagaimana cara menginstal kunci pribadi SSH yang dihasilkan oleh PuTTYgen?

50

Saya mengatur server Linux saya untuk menerima koneksi dari PC rumah saya dengan menambahkan kunci publik yang dihasilkan oleh PuTTYgen ke authorized_keysfile.

Sekarang saya mencoba untuk terhubung ke mesin yang sama, tetapi kali ini dari mesin Ubuntu yang lain. Saya harus menggunakan kunci privat yang sama (untuk alasan yang aneh, jangan tanya ..) dan saya tidak bisa menginstalnya di Ubuntu klien saya.

Apakah saya harus mengubahnya ke format lain?

Assaf Lavie
sumber

Jawaban:

25

Saya tidak yakin apakah kunci pribadi Anda akan berfungsi di ubuntu, tetapi layak dicoba. cukup salin kunci untuk memberi /home/yourName/.ssh/nama kunci pribadi id_rsa, dan kunci publik sebagai id_rsa.pub.

Jika itu tidak berhasil, maka Anda dapat membuat Anda sendiri ssh key-pair menggunakan ssh-keygendan menyalin kunci publik baru ke server, dan ssh sebagai berikut

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

Saya belum bermain dengan itu, tapi saya mendengar bahwa ssh-agent juga dapat digunakan untuk mengelola ssh-keys.

theTuxRacer
sumber
3
Ini berfungsi di ubuntu. Namun, pastikan untuk tidak menulis kunci id_rsa yang ada jika Anda sudah memilikinya (dengan menyalin kunci baru di atasnya) kecuali Anda tahu Anda tidak menggunakan yang lama.
David Oneill
5
Jawaban ini benar-benar kurang informasi, bagaimana Anda mendapatkan id_rsafile (dengan mengonversi kunci dalam PuTTYgen)
Martin Prikryl
38

Secara kebetulan, saya hanya harus melakukan ini. Anda perlu mengonversi kunci ke format OpenSSH. Perintah untuk melakukan itu adalah:

ssh-keygen -i -f puttygen_key > openssh_key

maka Anda dapat menyalin konten openssh_keyke .ssh/authorized_keyshanya dengan kunci SSH normal.

The -ipilihan adalah salah satu yang memberitahu ssh-keygenuntuk melakukan konversi. The -fpilihan mengatakan itu di mana untuk menemukan kunci untuk mengkonversi.

Ini berfungsi untuk kunci yang tidak terenkripsi . Kunci publik tidak terenkripsi, tetapi kunci pribadi mungkin dienkripsi. Saya tidak yakin apakah ada cara untuk tidak mengenkripsi kunci pribadi, mengubahnya, dan kemudian mengenkripsi ulang. Mungkin lebih mudah menggunakan kunci baru seperti yang disarankan oleh jawaban lain (dan saya sarankan menggunakan ssh-agentmeskipun itu ortogonal untuk masalah saat ini).

Loop Space
sumber
1
Jawaban ini menyelesaikan masalah saya. Saya harus mengonversi kuncinya. Terima kasih
leticia
1
Ini hanya memecahkan sebagian masalah dengan mengonversi kunci publik. Saya menggunakan jawaban @ user18617 untuk mengonversi kunci pribadi juga.
ᴠɪɴᴄᴇɴᴛ
@ ÉdouardLopez puttygen_keyharus menjadi kunci publik Anda, bukan kunci pribadi (* .ppk).
endolith
28

Andrew Stacey menjelaskan cara mengkonversi kunci ke format OpenSSH di Linux.

Jika Anda ingin melakukan hal yang sama pada Windows, ikuti langkah-langkah ini:

  1. Mulai PuTTYGen.
  2. Klik pada "Load".
  3. Pilih kunci pribadi Anda dan masukkan frasa sandi.
  4. Dari menu 'Konversi', pilih "Ekspor kunci OpenSSH".
  5. Pilih nama file tujuan.
hheimbuerger
sumber
1
Saya hanya ingin mengatakan bahwa ini bekerja untuk saya di Mac OS X saya, meskipun saya tahu ini adalah bagian Ubuntu. Saya mengonversi kunci pribadi saya yang dihasilkan di Windows seperti dijelaskan di atas, lalu menyalinnya di mac saya ke ~ / .ssh / id_rsa. chmod id_rsa 600 untuk mencegah Mac mengeluh tentang hal itu.
Richard
24

Cara menggunakan kembali pasangan kunci Putty Anda di Ubuntu sebagai kunci OpenSSH:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

Karena tujuan langkah 4 adalah menambahkan kunci publik Anda ke * ~. / Ssh / official_keys *, sehingga Anda dapat menggunakan kunci rahasia Putty Anda seperti ini alih-alih melakukan 4 sebagai langkah perantara:

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys
pengguna18617
sumber
1
tentang langkah 4: jika nama kunci pribadi adalah mykey-sec.ppk, nama file sumber dalam kasus ini biasanya akan menjadi mykey-sec.pub.
Kinjal Dixit
2
Memberi nama kunci publik (mungkin dalam format RFC 4716) mykey-pub.ppkcukup membingungkan, karena .ppkfile memiliki format yang sama sekali berbeda dan digunakan untuk pasangan kunci (bukan hanya kunci publik).
Martin Prikryl
Baris puttygen terakhir itu berfungsi dengan baik untuk saya setelah menginstal alat dempul pada debian 9. Baris dan jawaban lain di sini tidak bekerja.
Tim
Anehnya saya mendapatkan puttygen: unknown output type `private‐openssh'dan puttygen: cannot handle more than one input filejadi saya menyalin karakter yang tepat dari kode sumber dan mengubah kunci publik saya menjadi sesuatu yang lain sama sekali
CPHPython
sebagai kepala, jika Anda mencoba menjalankan perintah dalam jawaban ini dan mendapatkan "puttygen: tidak dapat menangani lebih dari satu file input", kemungkinan karena karakter tanda hubung dalam "private ‐ openssh" tidak disisipkan sebagai tanda hubung ASCII yang sebenarnya jadi puttygen tidak mengenalinya. Alih-alih, ketikkan kata itu sendiri dan itu akan berhasil.
Matt Styles
9

Putty / Puttygen menggunakan format milik pasangan kunci sendiri. Ini tidak akan berfungsi di Linux, di mana format kunci OpenSSH berlaku.

  • Di PuTTYgen, Anda bisa langsung melihat (dan menyalin + menempel) kunci publik dalam format yang digunakan oleh authorized_keysfile OpenSSH .

  • Anda dapat menggunakan tombol Simpan kunci publik untuk menyimpan kunci publik dalam .pubformat (RFC 4716). Di Linux, file tersebut biasanya dinamai id_rsa.pub(atau id_dsa.pub). Tapi itu biasanya tidak diperlukan.

  • Gunakan tombol Konversi> Ekspor OpenSSH untuk mengekspor kunci pribadi dalam format OpenSSH. Di Linux file biasanya bernama id_rsa(atau id_dsa) dan disimpan dalam .sshfolder.

Lihat resmi Menggunakan PuTTYgen, generator kunci Putty .

Anda juga dapat menggunakan PuTTYgen versi Linux untuk melakukan konversi. Versi Linux adalah baris perintah, bertentangan dengan versi Windows.

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

Lihat puttygenhalaman manual Linux .

Martin Prikryl
sumber
2

Saya menemukan satu solusi yang lebih jelas.

Pada puttygenmembuat kunci, lalu arahkan ke menu Top - Konversi dan klik kunci ekspor openssh

Konten file akan dimulai dan diakhiri dengan

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • untuk user root Copy file kunci untuk /root/.ssh/sebagai id_rsaatauid_dsa

  • untuk lain pengguna Copy file kunci untuk /home/user/.ssh/sebagai id_rsaatauid_dsa

Catatan :

  1. Tidak perlu diedit authorized_keys.
  2. Saya menggunakan linux amazon
  3. Izin file 0600
P-Kumar
sumber
1

* * Hati-hati dan pastikan Anda memiliki akses konsol ke kotak karena jika Anda tidak melakukannya dengan benar, Anda tidak akan dapat melakukan ssh lagi sampai Anda memperbaikinya dari konsol.

Prosesnya jauh lebih mudah dari yang Anda pikirkan. Muat pasangan kunci publik / pribadi yang Anda hasilkan di puttygen lagi. Di puttygen, Anda akan melihat sebuah jendela di tengah layar yang bertuliskan: "Kunci publik untuk menempelkan ke file Open_SH_dorified_keys:".

sorot seluruh isi kotak dan tekan control-c untuk menyalinnya.

SSH ke dalam kotak linux Anda dan rekatkan ke file "/home/username/.ssh/authorized_keys". Saya lebih suka menggunakan nano dan klik kanan untuk menempelkannya. Pastikan semuanya tetap pada satu baris.

Ubah file / etc / sshd_config Anda sesuai kebutuhan dan mulai ulang layanan sshd Anda: "service ssh restart"

Jika Anda memerlukan file sampel sshd_config, beri tahu saya dan saya dapat memposting milik saya.

Saya telah melakukan ini pada server Ubuntu 8.04, 10.04 dan 12.04 LTS dan berfungsi dengan baik.

ErnestA
sumber
0

Saya tidak yakin apakah utas ini masih aktif, tetapi saya menemukan masalah serupa dengan edisi ulang tahun Windows 10 yang sekarang mendukung kernel Ubuntu. Saya menggunakan untuk menggunakan Putty sebelum untuk menghubungkan ke mesin Linux. Untuk menghasilkan id_rsa dalam format linux, gunakan puttykeygen dan muat kunci pribadi dempul Anda lalu klik konversi dan pilih opsi kedua.

Keyakinan Putty KeyGenerator

buka file kunci yang baru dibuat dan salin semua isinya, pastikan konten Anda dimulai dengan: ----- BEGIN RSA PRIVATE KEY ----- dan berakhir dengan ----- END RSA PRIVATE KEY -----

vi id_rsa di dalam direktori ~ / .ssh Anda dan rekatkan konten yang disalin, ini diperlukan karena linux sebaliknya tidak akan memahami isi file.

Itu saja, coba ssh ke server jauh, itu harus bekerja.

binish
sumber