採用自動化軟件管理多臺主機時,首先要做的就是將自己的公鑰放到遠程主機上,而有時,需要管理的主機太多時,也是一件不容易的事情,所以以下就是我寫的自動上傳公鑰的腳本,希望可以幫到需要的朋友
注意:
由於上傳公鑰需要對方的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