GNU/Linux >> Belajar Linux >  >> Linux

Cara memeriksa apakah pasangan kunci publik / pribadi RSA cocok

Solusi 1:

Saya lebih suka ssh-keygen -y -e -f <private key> cara alih-alih jawaban yang diterima dari Bagaimana Anda menguji pasangan kunci DSA publik/pribadi? di Stack Overflow.

ssh-keygen -y -e -f <private key> mengambil kunci pribadi dan mencetak kunci publik yang sesuai yang dapat langsung dibandingkan dengan kunci publik yang tersedia. (Petunjuk:waspadalah terhadap komentar atau opsi kunci.)

(Bagaimana caranya? Saya hanya bisa berharap kunci publik dikodekan secara langsung atau tidak langsung dalam kunci privat...)

Saya membutuhkan ini sendiri dan menggunakan Bash one-liner berikut. Seharusnya tidak menghasilkan apa-apa jika kunci-kunci itu milik bersama. Terapkan sedikit -q ke diff dalam skrip dan diff hanya menyetel kode pengembalian dengan tepat.

PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )

Solusi 2:

Tergantung di mana Anda mendapatkan file kunci publik yang Anda uji, jawaban yang diterima dapat memberikan hasil positif palsu. Ini karena perilaku yang dijelaskan dalam komentar oleh @drewbenn. Secara khusus, ketika opsi -e digunakan dengan file kunci pribadi sebagai parameter opsi -f, itu hanya meniru (tetapi memformat ulang) apa yang ada di file kunci publik terkait.

Dengan kata lain,

ssh-keygen -y -f id_rsa

(tampaknya) menghasilkan nilai kunci publik, dan

ssh-keygen -y -e -f id_rsa

sederhana dan menampilkan (dan memformat ulang) kunci di yang sudah ada id_rsa.pub apapun itu .

Dalam kasus saya, saya harus memverifikasi bahwa pasangan tersebut tidak rusak. Jadi, saya memutuskan untuk membandingkan yang berikut ini:

ssh-keygen -y -f id_rsa | cut -d' ' -f 2

dengan

cut -d' ' -f 2 id_rsa.pub

Oleh karena itu:

diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)

Mungkin ini tidak sefleksibel, tapi lebih baik untuk kebutuhan saya. Mungkin itu membantu orang lain.

Solusi 3:

Jika ada di sistem lokal Anda, tempelkan id_rsa.pub di $HOME/.ssh/authorized_keys Anda dan ssh ke localhost menggunakan id_rsa kunci. Jika berhasil, maka mereka cocok.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost

Linux
  1. Cara Membuat Pasangan Kunci SSH (dengan Contoh)

  2. Cara Mengimpor Kunci Pribadi di FileZilla untuk SFTP

  3. Ssh – Diberikan Kunci Ssh Pribadi, Bagaimana Cara Memulihkan Kunci Publik?

  1. Bagaimana Memverifikasi Bahwa Sertifikat Ssh Ditandatangani Dengan Kunci Pribadi Ssh Ca yang Ditentukan?

  2. Bagaimana Cara Mengambil Kunci Publik Dari Kunci Pribadi Ssh?

  3. Bagaimana Cara Mencocokkan Pasangan Kunci Publik dan Pribadi Openpgp yang Diekspor?

  1. Cara membuat VPN

  2. Apa itu Kriptografi Kunci Publik (Cara Kerja VPN, Bagian 2)

  3. Cara Setup SSH keys untuk SSH "public/private key" Login Di Linux