注意:注釋不能出現這指令碼裡面
spawn表示開啟乙個會話
\r:表示回車,exp_continue :表示沒有出現這樣,繼續往下執行
interact :停留在對面終端
#!/usr/bin/expect
spawn ssh [email protected]
expect
"password"
}interact
#!/bin/bash
. /etc/init.d/functions
password=redhat #被推送主機的密碼
>ip.txt
#檢查是否按照了expect軟體
rpm -q expect &>/dev/null
if [ $? -ne 0 ];then
yum install expect -y
if [ $? -eq 0 ];then
echo "install success!"
else
echo "install false!"
exit 2
fifi
#檢查客戶端是否生成了公鑰和私鑰
if [ ! -f ~/.ssh/id_rsa ];then
ssh-keygen -p "" -f ~/.ssh/id_rsa
if [ $? -eq 0 ];then
echo "success!"
else
exit 2
fifi
#檢查客戶端是否能ping通,如果能ping通就使用expect推送秘鑰
for i in do
"password"
} expect eof
eofif [ $? -eq 0 ];then
action "$ip" /bin/true
echo $ip >> ip.txt
else
action "$ip" /bin/false
fifi }&
done
wait
echo "finish......"
#!/bin/bash
for ip in $(cat ip.txt)
do &
done
#!/bin/bash
read -p "please input a new passowrd:" password
for ip in $(cat ip.txt)
do &
done
利用Ansible 批量推送公鑰
yuminstall epel release 確保有擴充套件源 yum install ansible y ansible version ansible 2.9.6 配置檔案路徑config file etc ansible ansible cfg 查詢模組路徑configured module...
shell批量推送公鑰指令碼
寫乙個指令碼,將跳板機上yunwei使用者的公鑰推送到區域網內可以ping通的所有機器上 說明 主機和密碼檔案已經提供 bin env bash 判斷公鑰是否存在 f home yunwei ssh id rsa ssh keygen p f ssh id rsa 迴圈判斷主機是否ping通,如果p...
批量推送公鑰並且巡檢伺服器
這裡是寫了乙個判斷語句,首先判斷是否本地存在秘鑰目錄,如果不存在就產生金鑰對,並且將公鑰資訊進行推送到需要免密登入伺服器中,當然,因為是指令碼形式書寫,所以這裡所有的操作都是免互動進行,另外如果存在秘鑰目錄,這裡可以做乙個使用者互動,詢問使用者需要遠端到哪個伺服器,直接幫使用者遠端,並檢視伺服器的硬...