Otentikasi berbasis kunci SSH (juga dikenal sebagai otentikasi kunci publik) memungkinkan otentikasi tanpa kata sandi dan ini merupakan solusi yang lebih aman dan jauh lebih baik daripada otentikasi kata sandi. Salah satu keuntungan utama login tanpa kata sandi SSH, apalagi keamanannya adalah memungkinkan otomatisasi berbagai jenis proses lintas server.
Bacaan Terkait :Cara Mengamankan dan Memperkuat Server OpenSSHDalam artikel ini, kami akan mendemonstrasikan cara membuat pasangan kunci SSH dan menyalin kunci publik ke beberapa host Linux jarak jauh sekaligus, dengan skrip shell.
Buat Kunci SSH Baru di Linux
Pertama, buat pasangan kunci SSH (kunci pribadi/identitas yang digunakan klien SSH untuk mengautentikasi dirinya sendiri saat masuk ke server SSH jarak jauh dan kunci publik yang disimpan sebagai kunci resmi pada sistem jarak jauh yang menjalankan server SSH) menggunakan ssh-keygen perintah sebagai berikut:
# ssh-keygen
Buat Skrip Shell untuk Beberapa Login Jarak Jauh
Selanjutnya, buat skrip shell yang akan membantu menyalin kunci publik ke beberapa host Linux jarak jauh.
# vim ~/.bin/ssh-copy.sh
Salin dan tempel kode berikut di file (ganti variabel berikut sesuai USER_NAME
– nama pengguna untuk terhubung, HOST_FILE
– file yang berisi daftar nama host atau alamat IP, dan ERROR_FILE
– file untuk menyimpan kesalahan perintah ssh).
#!/bin/bash USER_NAME="root" HOST_FILE="/root/hosts" ERROR_FILE="/tmp/ssh-copy_error.txt" PUBLIC_KEY_FILE="$1" if [ ! -f $PUBLIC_KEY_FILE ]; then echo "File '$PUBLIC_KEY_FILE' not found!" exit 1 fi if [ ! -f $HOST_FILE ]; then echo "File '$HOST_FILE' not found!" exit 2 fi for IP in `cat $HOST_FILE`; do ssh-copy-id -i $PUBLIC_KEY_FILE [email protected]$IP 2>$ERROR_FILE RESULT=$? if [ $RESULT -eq 0 ]; then echo "" echo "Public key successfully copied to $IP" echo "" else echo "$(cat $ERROR_FILE)" echo exit 3 fi echo "" done
Simpan file dan tutup.
Kemudian buat skrip dapat dieksekusi dengan chmod perintah seperti yang ditunjukkan.
# chmod +x ssh-copy.sh
Sekarang jalankan ssh-copy.sh
skrip dan tentukan file kunci publik Anda sebagai argumen pertama seperti yang ditunjukkan pada tangkapan layar:
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub
Selanjutnya, gunakan ssh-agent
untuk mengelola kunci Anda, yang menyimpan kunci pribadi Anda yang telah didekripsi dalam memori dan menggunakannya untuk mengautentikasi login. Setelah memulai ssh-agent
, tambahkan kunci pribadi Anda sebagai berikut:
# eval "$(ssh-agent -s)" # ssh-add ~/.ssh/prod_rsa
Masuk ke Server Linux Jarak Jauh tanpa Kata Sandi
Sekarang Anda dapat masuk ke host jarak jauh mana pun tanpa memberikan kata sandi untuk otentikasi pengguna SSH. Dengan cara ini, Anda dapat mengotomatiskan proses lintas server.
# ssh [email protected]
Itu saja yang kami punya untuk Anda! Jika Anda memiliki kontribusi untuk dibuat khususnya dalam meningkatkan skrip shell, beri tahu kami melalui formulir masukan di bawah.