發送公鑰到多臺遠程主機

  採用自動化軟件管理多臺主機時,首先要做的就是將自己的公鑰放到遠程主機上,而有時,需要管理的主機太多時,也是一件不容易的事情,所以以下就是我寫的自動上傳公鑰的腳本,希望可以幫到需要的朋友


注意

由於上傳公鑰需要對方的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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章