Komut Dosyası Kullanarak Birden Fazla Uzak Sunucuda Parolasız SSH Oturum Açma

SSH Anahtar tabanlı kimlik doğrulama (ortak anahtar kimlik doğrulaması olarak da bilinir), parolasız kimlik doğrulamaya izin verir ve parola kimlik doğrulamasından daha güvenli ve çok daha iyi bir çözümdür. SSH şifresiz oturum açmanın en büyük avantajlarından biri , çeşitli türlerde sunucular arası işlemlerin otomasyonuna izin vermesidir.

Bu yazıda, bir SSH anahtar çiftinin nasıl oluşturulacağını ve ortak anahtarı bir komut satırı dosyasıyla aynı anda birden çok Linux sunucuya kopyalamayı göreceğiz.

İlk olarak, ssh- keygen komutu aşağıdaki gibidir:

# ssh-keygen
Generate SSH Key in Linux

Çoklu Uzaktan Oturum Açma İşlemleri için Betik Oluşturma

Ardından, bir ortak anahtarın birden çok Linux sunucuya kopyalanmasına yardımcı olacak bir komut dosyası oluşturalım.

# vim ~ / .bin / ssh-copy.sh

Aşağıdaki kodu kopyalayıp dosyaya yapıştırın (aşağıdaki değişkenleri uygun şekilde değiştirin USER_NAME– bağlanılacak kullanıcı adı, HOST_FILE– sunucu isimleri veya IP adresleri listesi, ERROR_FILE – ssh komutu hatasını depolamak için 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.

Ardından, chmod komutuyla komut dosyasını gösterildiği gibi çalıştırılabilir hale getirin .

# chmod + x ssh-copy.sh

Şimdi ssh-copy.shkomut dosyasını çalıştırın ve ekran görüntüsünde gösterildiği gibi ilk bağımsız değişken olarak ortak anahtar dosyanızı belirtin:

# ./ssh-copy.sh /root/.ssh/prod-rsa.pub
SSH Kopyalama Komut Dosyasını Çalıştır

Ardından, anahtarlarınızı yönetmek için ssh-agent ‘ı kullanın. Ssh-agent, deşifre edilmiş özel anahtarınızı bellekte tutar ve oturum doğrulamaları için kullanır. Aşağıdaki komut ile özel anatarınızı ekleyebilirsiniz:

# 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 bir parola sağlamadan uzak sunucularınızda oturum açabilirsiniz. Bu şekilde, sunucular arası işlemleri otomatikleştirebilirsiniz.

# ssh [email protected]

Yazının orijinalini buradan okuyabilirsiniz.