這裡是寫了乙個判斷語句,首先判斷是否本地存在秘鑰目錄,如果不存在就產生金鑰對,並且將公鑰資訊進行推送到需要免密登入伺服器中,當然,因為是指令碼形式書寫,所以這裡所有的操作都是免互動進行,另外如果存在秘鑰目錄,這裡可以做乙個使用者互動,詢問使用者需要遠端到哪個伺服器,直接幫使用者遠端,並檢視伺服器的硬體資訊。但指令碼中存在不足,必須執行兩次,一次是檢測目錄不存在則生成金鑰對,然後結束,然後再次執行指令碼,才能免密巡檢伺服器。。。。
我這裡只是寫了一台伺服器,如果公司有很多伺服器也可以多寫乙個whil迴圈語句,也可以結合郵件伺服器,將每天的巡檢資訊,傳送到郵箱
#!/bin/bash
ip=10.0.0.
pass=123.com
if [ ! -d "/root/.ssh" ];then
ssh-keygen -p "" -f /root/.ssh/id_rsa
rpm -qa|grep sshpass
if [ ! $? -eq 0 ];then
echo '請稍等,正在幫您安裝sshpass軟體包....'
/usr/bin/yum install -y sshpass &>/dev/null
echo '請再次執行指令碼,幫您對伺服器進行巡檢,這次只是安裝軟體包哦~~~'
sleep 4
fi for i in 7 8 ;
do sshpass -p $ ssh-copy-id -i /root/.ssh/id_rsa.pub -o stricthostkeychecking=no root@$$ &>/dev/null
done
else
cat <$
cat <$
cat <$
fi fi
利用Ansible 批量推送公鑰
yuminstall epel release 確保有擴充套件源 yum install ansible y ansible version ansible 2.9.6 配置檔案路徑config file etc ansible ansible cfg 查詢模組路徑configured module...
(九)expect批量公鑰推送
注意 注釋不能出現這指令碼裡面 spawn表示開啟乙個會話 r 表示回車,exp continue 表示沒有出現這樣,繼續往下執行 interact 停留在對面終端 usr bin expect spawn ssh root 192.168.111.101 expect password inter...
shell批量推送公鑰指令碼
寫乙個指令碼,將跳板機上yunwei使用者的公鑰推送到區域網內可以ping通的所有機器上 說明 主機和密碼檔案已經提供 bin env bash 判斷公鑰是否存在 f home yunwei ssh id rsa ssh keygen p f ssh id rsa 迴圈判斷主機是否ping通,如果p...