Bagaimana Anda mengatur ssh untuk mengotentikasi pengguna menggunakan kunci daripada nama pengguna / kata sandi?
34
Untuk setiap pengguna: mereka harus membuat (pada mesin lokal mereka) keypair menggunakan ssh-keygen -t rsa
( rsa
dapat diganti dengan dsa
atau rsa1
juga, meskipun opsi-opsi itu tidak dianjurkan). Kemudian mereka perlu memasukkan konten kunci publik mereka ( id_rsa.pub
) ke ~/.ssh/authorized_keys
dalam server yang sedang login.
Saya sebenarnya lebih suka ssh-copy-id , sebuah skrip yang ditemukan di * nix secara default (dapat dimasukkan ke Mac OS X dengan cukup mudah juga) yang secara otomatis melakukan ini untuk Anda. Dari halaman manual:
sumber
Hum, jangan mengerti. Cukup buat kunci dan mulailah. :) HOWTO Selain itu Anda bisa melarang login melalui kata sandi. Dalam contoh / etc / ssh / sshd_config:
sumber
Ini cukup mudah dilakukan - ada langkah-langkah sederhana yang dapat ditemukan di sini .
Poin utamanya adalah:
ssh-keygen
di mesin Anda. Ini akan menghasilkan kunci publik dan pribadi untuk Anda.~/.ssh/id_rsa.pub
) ke~/.ssh/authorized_keys
pada mesin jarak jauh.Penting untuk diingat bahwa ini akan memberi siapa pun yang memiliki akses ke kunci privat pada mesin Anda akses yang sama ke mesin jarak jauh, jadi ketika membuat pasangan kunci Anda dapat memilih untuk memasukkan kata sandi di sini untuk keamanan ekstra.
sumber
Untuk pengguna Windows untuk mengatur dempul
sumber
Untuk meringkas apa yang dikatakan orang lain, mengatur kunci SSH mudah dan tidak ternilai.
Pada mesin yang Anda akan SSHing dari, Anda perlu membuat pasangan kunci Anda:
Tekan saja enter di mana dicatat dan masukkan frasa sandi ketika diminta - idealnya ini berbeda dari kata sandi login reguler Anda pada host saat ini dan yang Anda akan SSHing.
Berikutnya, Anda perlu menyalin kunci Anda hanya dihasilkan ke host yang ingin Anda SSH ke . Sebagian besar distribusi Linux memiliki alat
ssh-copy-id
untuk melakukan ini:Jika distribusi Anda tidak memilikinya, maka Anda harus menyalin kunci ke host tujuan dan menambahkannya ke file (mungkin ada)
.ssh/authorized_keys
:Terakhir, untuk mendapatkan manfaat maksimal dari kunci SSH, Anda harus menjalankan agen SSH. Jika Anda menggunakan lingkungan desktop (Gnome, KDE, dll.) Maka hanya logout dan kembali akan memulai agen SSH untuk Anda. Jika tidak, Anda dapat menambahkan berikut ke shell Anda berkas RC (
.bashrc
,.profile
, dll):sumber
Ini dimaksudkan sebagai daftar periksa. Jika seseorang mengikutinya poin demi poin, gotcha paling umum untuk login tanpa kata sandi harus dicakup. Sebagian besar poin ini disebutkan di tempat lain; ini adalah agregasi.
Harus ada
~/.ssh
direktorichmod 700
di setiap mesin di bawah akun yang akan berasal atau menerima koneksi.Kunci (pribadi) harus dibuat tanpa frasa sandi, atau agen dapat dimulai yang akan menyimpan versi yang didekripsi dari kunci penahan frasa sandi untuk digunakan klien. Mulai agen dengan
ssh-agent $SHELL
. Itu$SHELL
bagian yang membuatku butuh waktu untuk menemukannya. Lihat halaman manual karena ada detail yang beraneka ragam jika Anda ingin menggunakan agen.Jangan lupa bahwa secara default kunci lemah (<2048 bit DSA) tidak diterima oleh sshd versi terbaru.
Hal-hal berikut harus dilakukan pada mesin sisi klien untuk memulai koneksi.
Kunci pribadi Anda harus ditempatkan di
~/.ssh/id_rsa
atau~/.ssh/id_dsa
sesuai kebutuhan. Anda dapat menggunakan nama lain, tetapi kemudian harus disertakan pada opsi -i pada perintah ssh pada mesin asal untuk secara eksplisit menunjukkan kunci pribadi.Kunci pribadi Anda harus
chmod 600
.Periksa apakah folder rumah Anda
chmod 700
.Sekarang untuk memungkinkan mesin menerima permintaan. Model umum adalah di mana admin memberi Anda akses ke mesin yang bukan milik Anda (seperti shared web hosting). Karena itu, ide dengan ssh adalah Anda menawarkan kunci publik kepada siapa pun yang memberi Anda akun. Itu sebabnya Anda biasanya tidak menaruh kunci pribadi pada mesin yang menerima permintaan. Tetapi, jika Anda ingin mesin ini melakukan ssh keluar juga, maka Anda harus memperlakukan sebagai mesin yang berasal dengan langkah-langkah di atas.
~/.ssh/authorized_keys
bawah akun yang akan menerima koneksi. Anda dapat menempatkan kunci lain yang diizinkan untuk terhubung melalui akun ini di sini juga. Suatu hal yang sangat rumit jika Anda berada di vi dan menempelkan kunci ke file dari buffer paste di Putty adalah ini: kunci dimulai dengan "ssh-". Jika Anda tidak dalam mode sisipkan, huruf "s" pertama akan memasukkan vi dalam mode sisipkan dan sisa tombol akan terlihat baik-baik saja. Tetapi Anda akan kehilangan huruf "s" di awal kunci. Butuh berhari-hari bagi saya untuk menemukannya.chmod 600 ~/.ssh/authorized_keys
. Setidaknya harus gw.sumber
Seperti yang orang lain katakan, pengguna Anda harus membuat sendiri kunci pada mesin klien mereka dengan ssh-keygen dan menambahkan kunci publik mereka ke ~ / .ssh / otor_keys pada mesin yang ingin mereka masuki.
Untuk informasi lebih rinci, saya sangat merekomendasikan SSH, The Secure Shell .
sumber
Ada saran bagus di sini, jadi saya tidak akan mengulanginya. Setelah Anda menyiapkan satu server untuk memungkinkan Anda masuk dengan kunci, Anda dapat mengatur yang lain untuk melakukan hal yang sama dengan liner satu ini:
Cukup cd ke direktori home Anda, tentukan remote variabel sebagai satu atau banyak nama server dan lakukan banyak sekaligus. Kata sandi yang diminta akan menjadi kata sandi ssh Anda untuk server jarak jauh. Tentu saja Anda dapat menggunakan versi yang disederhanakan tanpa for-loop:
INGAT: Hanya salin kunci publik Anda. Anda tidak ingin kunci pribadi Anda berada di beberapa server tempat siapa pun yang menggunakan sudo dapat menyalinnya dan dengan kasar memaksa frasa sandi Anda.
sumber