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.