Komut Dosyası Kullanarak Birden Çok Uzak Sunucu için Parolasız SSH Oturum Açma Kurulumu


SSH Anahtar tabanlı kimlik doğrulama (ortak anahtar kimlik doğrulaması olarak da bilinir), şifresiz kimlik doğrulamaya olanak tanır ve şifre kimlik doğrulamasından daha güvenli ve çok daha iyi bir çözümdür. Bırakın güvenliği, SSH şifresiz oturum açmanın en büyük avantajlarından biri, çeşitli sunucular arası süreçlerin otomasyonuna izin vermesidir.

Bu makalede, bir SSH anahtar çiftinin nasıl oluşturulacağını ve ortak anahtarın bir kabuk komut dosyasıyla birden fazla uzak Linux ana bilgisayarına aynı anda nasıl kopyalanacağını göstereceğiz.

Linux'ta Yeni Bir SSH Anahtarı Oluşturun

Öncelikle, ssh-keygen komutunu şu şekilde kullanın:

ssh-keygen

Birden Çok Uzaktan Oturum Açma için Kabuk Komut Dosyası Oluşturun

Daha sonra, ortak anahtarın birden fazla uzak Linux ana bilgisayarına kopyalanmasına yardımcı olacak bir kabuk komut dosyası oluşturun.

vim ~/.bin/ssh-copy.sh

Aşağıdaki kodu kopyalayıp dosyaya yapıştırın (aşağıdaki değişkenleri buna göre değiştirin USER_NAME – bağlanılacak kullanıcı adı, HOST_FILE – ana bilgisayar adlarının veya IP adreslerinin listesini içeren bir dosya) ve ERROR_FILE – herhangi bir ssh komut hatasını saklayacak bir dosya).

#!/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 $USER_NAME@$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

Dosyayı kaydedin ve kapatın.

Daha sonra gösterildiği gibi chmod komutuyla betiği çalıştırılabilir hale getirin.

chmod +x ssh-copy.sh

Şimdi ssh-copy.sh betiğini çalıştırın ve ekran görüntüsünde gösterildiği gibi genel anahtar dosyanızı ilk argüman olarak belirtin:

./ssh-copy.sh /root/.ssh/prod-rsa.pub

Daha sonra, şifresi çözülmüş özel anahtarınızı bellekte tutan ve oturum açma işlemlerini doğrulamak için kullanan anahtarlarınızı yönetmek için ssh-agent'ı kullanın. ssh-agent'ı başlattıktan sonra özel anahtarınızı ona aşağıdaki şekilde ekleyin:

eval "$(ssh-agent -s)"
ssh-add  ~/.ssh/prod_rsa

Uzak Linux Sunucusuna Parola Olmadan Giriş Yapın

Artık SSH kullanıcı kimlik doğrulaması için parola girmeden uzak ana bilgisayarlarınızdan herhangi birinde oturum açabilirsiniz. Bu şekilde sunucular arası işlemleri otomatikleştirebilirsiniz.

ssh [email 

Senin için sahip olduğumuz tek şey bu! Özellikle kabuk komut dosyasının iyileştirilmesine yönelik herhangi bir katkınız varsa, aşağıdaki geri bildirim formunu kullanarak bize bildirin.