Pertanyaan Bagaimana cara mengambil kunci publik dari kunci pribadi SSH?


Kunci pribadi SSH seperti yang dihasilkan oleh ssh-keygen berisi bagian kunci publik. Bagaimana cara mengambil kunci publik ini dari kunci privat? Saya kehilangan kunci publik dan harus memasukkan isi kunci publik ini di server authorized_keys file dan tidak ingin membuat pasangan kunci baru.

Atau diutarakan: bagaimana cara membuat id_rsa.pub file dari a id_rsa mengajukan?


369
2017-07-18 09:57


asal


pbcopy > ~/.ssh/id_rsa.pub oops. - Nick T
@NickT - pbcopy adalah perintah MacOSX. Plus, itu tidak berguna jika Anda sudah reboot, keluar, atau menyalin apa pun ke clipboard. - jsnfwlr


Jawaban:


Saya telah menemukan jawabannya di Server Fault: Buat kunci SSH publik dari kunci privat?

Pilihan -y mengeluarkan kunci publik:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Sebagai catatan tambahan, komentar kunci publik hilang. Saya sudah memiliki situs yang membutuhkan komentar (Launchpad?), Jadi Anda perlu mengedit ~/.ssh/id_rsa.pub dan tambahkan komentar ke baris pertama dengan spasi di antara komentar dan data kunci. Contoh kunci publik ditampilkan terpotong di bawah ini.

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

Untuk kunci yang ditambahkan ke SSH Agent (program yang berjalan di latar belakang dan menghindari kebutuhan untuk memasukkan kembali kata kunci keyfile berulang kali), Anda dapat menggunakan ssh-add -L perintah untuk daftar kunci publik untuk kunci yang ditambahkan ke agen (via ssh-add -l). Ini berguna ketika kunci SSH disimpan pada kartu pintar (dan akses ke file kunci pribadi tidak dimungkinkan).


574
2017-07-18 10:12



Anda membuatnya sepotong kue. Terima kasih - bragboy
Harap dicatat bahwa file kunci pribadi Anda ~/.ssh/id_rsa harus dibatasi untuk nama pengguna Anda. menggunakan $ sudo chmod 600 ~/.ssh/id_rsa dan masukkan kredensial root Anda untuk membatasinya, maka Anda dapat menampilkan file kunci publik. Jika tidak, Anda akan mendapatkan peringatan file kunci pribadi tidak terbatas. - Mark Mikofski
@MarkMikofski Tidak perlu sudo, Anda seharusnya sudah memiliki kunci pribadi. Kalau tidak, Anda tidak bisa membacanya di tempat pertama. - Lekensteyn
Terima kasih @Lekensteyn, tentu saja Anda benar !. Juga 400 dianjurkan karena tidak perlu menulis untuk mengetik file kunci pribadi. Perintah yang dikoreksi seharusnya $ chmod 400 ~/.ssh/id_rsa - Mark Mikofski
Komentar kunci pribadi hilang. Lihat stackoverflow.com/questions/38290929/… - weberjn


Ini adalah solusi khusus untuk pengguna yang menggunakan Windows untuk SSH ke mesin jarak jauh mereka, termasuk gambar cloud di Amazon AWS dan GCE.

(Penolakan)

Saya baru-baru ini menggunakan solusi ini untuk login jarak jauh ke gambar VM yang digunakan baru di GCE.


Alat yang digunakan:

  1. puttygen
  2. WinSCP

Langkah-langkah untuk dilakukan:

  1. Hasilkan pasangan kunci publik / pribadi menggunakan puttygen.
  2. Unggah kunci publik ke server Anda di cloud atau lokasi terpencil.

Deskripsi (bagaimana melakukannya):

  1. Hasilkan kunci / pasangan atau gunakan kunci pribadi yang ada:

    Jika Anda memiliki kunci pribadi:

    Buka puttygen, tekan tombol load dan pilih file private key (* .pem) Anda.

    Jika kamu melakukan tidak memiliki kunci pribadi:

    • Buka puttygen,
    • Pilih jenis kunci SSH2 DSA yang diinginkan (Anda dapat menggunakan RSA atau DSA) di dalam bagian Parameter ... dan penting bahwa Anda membiarkan bidang passphrase kosong,
    • Tekan generate dan ikuti instruksi untuk menghasilkan pasangan kunci (publik / pribadi).

    Sample Key Generation pic

  2. Buat file 'authorized_keys' baru (dengan Notepad):

    Salin data kunci publik Anda dari "Kunci Publik untuk menyisipkan ke dalam file OpenSSH authorized_keys file" dari Pembuat Kunci PuTTY, dan tempelkan data kunci ke file "authorized_keys".

    Pastikan hanya ada satu baris teks dalam file ini.

  3. Unggah kunci ke server Linux:

    • Buka WinSCP,
    • Pilih protokol file SFTP dan masuk dengan kredensial SSH Anda.
    • Pada kesuksesan, Anda melihat struktur direktori rumah di mesin jarak jauh Anda.

    Unggah file authorized_keys ke direktori home di mesin remote.

  4. Setel izin yang tepat:

    Membuat .ssh direktori (jika tidak ada)

    Salin authorized_keysfile ke direktori .ssh (ini akan menggantikan yang ada authorized_keys mengajukan; catat ini).

    Jika file itu ada, cukup tambahkan isi file ini ke file yang ada.

    Jalankan perintah untuk mengatur izin:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

Sekarang Anda akan dapat ssh ke mesin remote tanpa memasukkan kredensial setiap kali.

Bacaan lebih lanjut:

  1. Menghasilkan dan mengunggah kunci SSH di bawah Windows

  2. Otentikasi tanpa kata sandi menggunakan OpenSSH Key, sertifikat .pem dan .pub


12
2017-11-20 06:18



Jika direktori home Anda di-encryted, lakukan ini: askubuntu.com/questions/439184/… - devprashant
meskipun jawaban Anda tidak benar-benar relevan dengan pertanyaan itu, saya memilihnya karena antusiasme Anda. - Truong Nguyen