GNU/Linux >> Belajar Linux >  >> Ubuntu

Atur Login SSH Tanpa Kata Sandi untuk Beberapa Server Jarak Jauh Menggunakan Skrip

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 OpenSSH

Dalam 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.


Ubuntu
  1. Cara Mengatur kunci SSH untuk login ssh "tanpa kata sandi" di Linux

  2. Cara Mengatur kunci SSH untuk Login SSH “tanpa kata sandi” di CentOS/RHEL

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

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Skrip BASH Sederhana Untuk Instalasi Pasca Server Ubuntu

  3. SSH tanpa kata sandi menggunakan pasangan kunci publik-swasta

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara mengatur login SSH tanpa kata sandi di Linux

  3. Menggunakan Kunci Pribadi SSH yang Sama di Beberapa Mesin