在實際運維的過程中,經常需要用到免密登錄,下面這個腳本實現服務器之間的免密登錄,如下
比如,要實現A服務器與B、C、D服務器的免密登錄,只需要將B、C、D服務器的IP地址寫在serverlist.txt中,然后在A服務器上執行下面這一段命令即可。
#!/bin/bash #免密登錄腳本 #作者:海藍之心賽 #使用說明 #在和本腳本同級目錄下,創建一個名為serverlist.txt的文件,將需要做免密登錄的服務器ip地址列表寫在serverlist.txt中,每個IP地址占用一行。 #特殊說明,serverlist.txt請在linux服務器中創建,在Windows上創建容易出現編碼問題,導致免密登錄失敗。 current=`pwd` serverlist=`cat $current/serverlist.txt` mkdir -p /root/.ssh ssh-keygen -t rsa -P '' for ip in $serverlist do echo "#$ip no password." ssh root@$ip 'mkdir -p /root/.ssh 2>/dev/null' cat /root/.ssh/id_rsa.pub | ssh root@$ip 'cat >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys' done
