(九)expect批量公鑰推送

2022-04-18 14:02:22 字數 1352 閱讀 6163

注意:注釋不能出現這指令碼裡面

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...

批量推送公鑰並且巡檢伺服器

這裡是寫了乙個判斷語句,首先判斷是否本地存在秘鑰目錄,如果不存在就產生金鑰對,並且將公鑰資訊進行推送到需要免密登入伺服器中,當然,因為是指令碼形式書寫,所以這裡所有的操作都是免互動進行,另外如果存在秘鑰目錄,這裡可以做乙個使用者互動,詢問使用者需要遠端到哪個伺服器,直接幫使用者遠端,並檢視伺服器的硬...