Ada dua mesin Linux, A dan B. Script berjalan pada Kebutuhan untuk dapat SSH ke B. Jadi A menghasilkan kunci publik (mungkin ssh-keygen
-generated id_rsa.pub
), dan kemudian menggunakan kunci pribadi masing-masing (lagi, mungkin id_rsa
) untuk membuat koneksi SSH.
Jika sesuatu yang saya katakan di atas salah atau menyesatkan, silakan mulai dengan mengoreksi saya!
Dengan asumsi saya kurang lebih tepat sasaran:
- Bagaimana A "memberi" B kunci publik (
id_rsa.pub
)? Apakah ini harus berupa proses manual, atau dapatkah itu dilakukan secara otomatis? Kalau manual, bagaimana prosesnya? Jika otomatis, apa perintahnya? Ketika B "mendapatkan" kunci publik ini, ke mana ia pergi atau disimpan? - Ketika memulai koneksi SSH ke B, bagaimana A "menggunakan" kunci privat (
id_rsa
) sebagai bagian dari koneksi itu?
linux
ssh
public-key-encryption
pengguna3178622
sumber
sumber
Jawaban:
ssh-keygen
menghasilkan kunci publik dan kunci pribadi, yang awalnya hanya berada secara lokal. Memberikan kunci publik ke host lain adalah sesuatu yang perlu dilakukan pengguna secara manual, baik dengan mengirimkannya ke seseorang yang bertanggung jawab untuk server B, atau jika Anda memiliki akun dengan kata sandi, Anda bisa login dan menaruhnya di sana sendiri. Untuk mengizinkan login tanpa kata sandi ke server B, Anda perlu menambahkan kunci publik Anda ke file ~ / .ssh / Authorized_key di server B (satu kunci publik per baris, bisa ada sejumlah kunci dalam file ini). Ada perintah linuxssh-copy-id
yang akan menyalin ID untuk Anda dan memasukkannya ke dalam file.Secara default, ssh akan menggunakan file ~ / .ssh / id_XXX sebagai kunci pribadi Anda. XXX dapat berupa rsa, dsa, atau protokol apa pun yang menghasilkan kunci. IIRC, dsa sudah tua dan tidak boleh digunakan. Jika Anda ingin menggunakan kunci pribadi yang berbeda, Anda bisa menentukannya di perintah ssh Anda menggunakan
-i
. Selama kunci privat yang digunakan cocok dengan kunci publik pada mesin jarak jauh (dalam file Authorized_key untuk akun pengguna yang Anda masuki), maka Anda tidak perlu memberikan kata sandi.sumber
ssh-keygen
dijalankan, Anda menyebutkan bahwa dua tombol "berada hanya secara lokal"? Dimana?!? Seperti, apa folder dapat menavigasi ke dan melihatid_rsa.pub
danid_rsa
? (2) Saya pikirssh-add
adalah perintah untuk menambahkan kunci publikauthorized_keys
, bukan? Apa perbedaan antarassh-copy-id
danssh-add
? Terima kasih lagi!~/.ssh/id_rsa
re '2', ssh-add bukan untuk menambahkan ke berwenang_kunci, itu untuk menambahkan ke gantungan kunci .. Saya belum pernah menggunakan ssh -Tapi. ssh-add berkaitan dengan memungkinkan Anda untuk tidak harus memasukkan frasa sandi setiap kali Anda menggunakan kunci yang memerlukan frasa sandi. Jadi jika kunci ssh Anda tidak memerlukan keyphrase maka saya kira tidak ada alasan untuk menggunakan ssh-add dan saya pikir Anda masih perlu menggunakan ssh-copy-id atau melakukan manual menyalin kunci publik ke authorized_keysya
tetapi B membutuhkan kunci publik A untuk dicantumkan dalam file B's berwenang_ke agar A dapat terhubung ke B
Anda juga dapat menghapus id_rsa.pub dan ssh ke B dan itu masih akan berfungsi, karena kunci publik dibuat segar dengan setiap koneksi ssh dan tidak disimpan dalam id_rsa.pub
manual - sesuatu seperti
dari-
atau bahkan lebih manual, untuk memecah perintah
A $
cat id_rsa.pub | ssh user@host 'cat>~/a.a'
lalu pada B, pastikan ~ / .ssh ada kemudian lakukan
cat a.a >> ~/.ssh/authorized_keys
dan Anda dapat memberi otorisasi pada tombol B sebelum dan sesudah untuk memastikan kunci terdaftar.
Atau Anda dapat mengirim email id_rsa.pub ke akun email, lalu dari B, B dapat memeriksa email dan menambahkan konten id_rsa.pub ke file otor_keys-nya
secara otomatis
Perintah ssh-copy-id
Anda harus bisa ssh in, jadi Anda perlu akses kata sandi
Alih-alih melakukan ssh user @ host Anda melakukan ssh-copy-id user @ host dan Anda diminta kata sandi, Anda memasukkannya, Anda masuk, itu akan menyalin kunci publik lebih dari. Dan lain kali Anda melakukan ssh user @ host, ia akan menggunakan kunci.
Kunci B ~ / .ssh /otorized_
baik, saya tidak tahu banyak tentang itu, dari atas kepala saya, tetapi apa pun yang dienkripsi dengan satu kunci dapat didekripsi dengan kunci lainnya, dan mengidentifikasi diri Anda sedikit berbeda dengan mengirim data .. dan mungkin ada sesuatu tentang kunci sementara juga.
sumber