采用自動化軟體管理多台主機時,首先要做的就是将自己的公鑰放到遠端主機上,而有時,需要管理的主機太多時,也是一件不容易的事情,是以以下就是我寫的自動上傳公鑰的腳本,希望可以幫到需要的朋友
注意:
由于上傳公鑰需要對方的ip位址,是以這個腳本會讀取一個ip.txt的檔案,請大家注意
ip=`cat ~/ip.txt`
#!/bin/bash
#
#1.為腳本添加遠端主機的使用者及密碼
#############################################################################
read -p "請您輸入主機使用者:" user
read -p "請您輸入主機密碼:" mima
read -p "請您再次輸入密碼:" queren
if [ $mima == $queren ]
then
echo "您輸入的密碼為:$queren" && sleep 1
echo "正在為您建立密鑰對兒,請您注意" && sleep 1
else
echo "您兩次輸入的密碼不比對,請您重新輸入"
read -p "請您輸入主機使用者:" user
read -p "請您輸入主機密碼:" mima
read -p "請您再次輸入密碼:" queren
if [ $mima == $queren ]
then
echo "您輸入的密碼為:$queren"
echo "正在為您建立密鑰對兒,請您注意" && sleep 1
else
echo "您兩次輸入的密碼不同,請您重新執行腳本"
fi
fi
#############################################################################
#2.檢查秘鑰、建立密鑰
if [ -f /root/.ssh/id_rsa.pub ]
then
echo "您的主機已經有密鑰對兒了,不需要再次建立"
else
ssh-keygen -t rsa -P ''
fi
rpm -q sshpass &> /dev/null
if [ $? -ne 0 ]
then
yum -y install sshpass &> /dev/null
echo "StrictHostKeyChecking no" > /root/.ssh/config
echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config
else
echo "StrictHostKeyChecking no" > /root/.ssh/config
echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config
fi
#3.批量添加密鑰對兒
ip=`cat ~/ip.txt`
for i in $ip
do
sshpass -p $queren ssh-copy-id $user@$i &> /dev/null
ssh $user@$i "pwd" &> /dev/null
if [ $? -eq 0 ]
then
echo "$i is add successful"
else
echo "$i is failure"
fi
done