Buat kunci SSH publik dari kunci pribadi?

215

Misalkan saya memiliki kunci SSH, tetapi saya telah menghapus bagian kunci publik. Saya memiliki bagian kunci pribadi. Apakah ada cara saya bisa membuat ulang bagian kunci publik?

Rory
sumber

Jawaban:

253

Gunakan opsi -y untuk ssh-keygen:

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

Dari 'man ssh-keygen'

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

Tentukan kunci pribadi dengan opsi -f, Anda mungkin dsa bukan rsa. Nama kunci pribadi Anda mungkin berisi yang Anda gunakan. Kunci publik yang baru dibuat harus sama dengan yang Anda buat sebelumnya.

Kyle Brandt
sumber
7
Kenapa "-t dsa"? Mayge kunci OP adalah rsa? Saya akan menyingkirkan -t dan sebagai gantinya menggunakan -f.
innaM
1
Poin bagus, diperbarui sesuai
Kyle Brandt
ya milikku awalnya adalah RSA.
Rory
1
Di Mac OSX 10.9.3 Mavericks saya mendapatkan 'gagal memuat' setelah menjalankan perintah. Bagaimana saya mengatasi ini?
Hyperfocus
Saya pikir Anda mungkin mengambil satu langkah lebih jauh dengan parameter -N jika kunci pribadi dilindungi kata sandi:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
ken
6

Solusi khusus untuk pengguna yang menggunakan Windows

Alat yang digunakan:

  • Puttygen (Generator Kunci Putty)
  • WinSCP

Langkah-langkah untuk melakukan:

  1. Buka Generator Kunci Putty.
  2. Muat kunci pribadi Anda ( *.ppkfile).
  3. Salin data kunci publik Anda dari bagian "Kunci publik untuk menempel ke file OpenSSH official_keys" dari Generator Kunci Putty dan rekatkan data kunci tersebut ke file "official_keys" (menggunakan notepad) jika Anda ingin menggunakannya.

Cuplikan yang memperlihatkan bagian-bagian Puttygen untuk difokuskan:

Cuplikan yang memperlihatkan bagian-bagian Puttygen untuk fokus

penyembah
sumber
Bacaan lebih lanjut: askubuntu.com/questions/53553/...
devprashant
Puttygen juga dapat 'mengimpor' OpenSSH (benar-benar OpenSSL-legacy) dan format privatekeys format SSHCOM. Dan meskipun berasal dari Windows, itu juga telah porting ke Unix, dan versi Unix puttygenadalah program commandline (bukan GUI); lihat misalnya linux.die.net/man/1/puttygen
dave_thompson_085