您現在的位置是:首頁 > 遊戲

Linux多臺機器一鍵免密互信指令碼(基礎版本)

由 anyux1 發表于 遊戲2022-07-13
簡介pub#私鑰key=id_rsa#使用者名稱稱user=root#使用者密碼passwd=root#需要root許可權安裝軟體install_cmd(){yum install -y pssh sshpass}create_key(){sl

rf怎麼在本地迴圈跑

大家好,我是anyux。本文介紹Linux多臺機器一鍵免密互信指令碼(基礎版本)。

Linux多臺機器一鍵免密互信指令碼(基礎版本)

因為很多操作工具構架需要免金鑰互信的基礎才能實現,比如hadoop,MHA等,本人十分懶惰,不想因為反覆克隆機器後,再搞複製貼上的操作。從昨天晚上11點還完成,氣得直接睡覺去了。

白天來公司,正巧無事(一會做完了),上手就開始完成這個指令碼。

心急的同學,可以直接替換head_ip(字首ip),arr(字尾ip),passwd(密碼),以root許可權直接執行

Linux多臺機器一鍵免密互信指令碼(基礎版本)

這個版本是很基礎的小指令碼,就跟鬧著玩一樣。

它的不足,

依賴第三工具,並且需要以root許可權安裝,執行

ip限制,需要手動修改

同步金鑰的演算法未最佳化,感覺可以最佳化,雖然還不知道最佳化的空間有多少

Linux多臺機器一鍵免密互信指令碼(基礎版本)

再說說它的實現邏輯

這裡的前提,是所有同步金鑰機器的密碼一致(不一致的要等待下一個版本更新吧)

隨機一臺機器登入,生成金鑰對,複製公鑰到其他主機認證

基於迴圈,逐個遠端登入主機,刪除金鑰對,重新生金鑰對

基於迴圈,逐個遠端登入主機,安裝遠端工具sshpass,複製公鑰到其他機器,還有本地主機localhost

檢測多主機免密通訊情況

#!/bin/bash

#演算法金鑰

#分發給指定機器

#ip_header

head_ip=‘192。168。255。’

#ip_footer

arr=(113 114 115)

#使用者家金鑰目錄

base_dir=~/。ssh/

#公鑰

pub=id_rsa。pub

#私鑰

key=id_rsa

#使用者名稱稱

user=root

#使用者密碼

passwd=root

#需要root許可權安裝軟體

install_cmd(){

yum install -y pssh sshpass

}

create_key()

{

sleep 2

#刪除本地初始金鑰對

rm -rf ${base_dir}

sleep 1

echo -e “刪除完成\n”

echo “開始分發”

echo “\n”

echo “++++++++++++++++++++”

#本地主機生成金鑰

\ssh-keygen -t rsa -f ${base_dir}${key} -P “”

for ip in ${arr[@]}

do

echo “輸出ip**********”

echo “ssh root@${head_ip}${ip} ”

tmp=‘ssh-keygen -t rsa -f ${base_dir}${key} -P “”’

#本地主機公鑰複製到其他主機認證檔案

sshpass -p${passwd} ssh-copy-id $user@${head_ip}${ip} -o StrictHostKeyChecking=no

#遠端主機連線,刪除已生成的金鑰,並重新生成金鑰

sshpass -p${passwd} ssh $user@${head_ip}${ip} “rm -rf ${base_dir}${key};rm -rf ${base_dir}{pub}”

#遠端主機連線,生成金鑰

sshpass -p${passwd} ssh $user@${head_ip}${ip} “ssh-keygen -t rsa -f ${base_dir}${key} -P ‘’”

#遠端主機連線,將公鑰複製到其他主機認證檔案

for tmp_ip in ${arr[@]}

do

#安裝遠端連線工具

sshpass -p${passwd} ssh $user@${head_ip}${ip} “yum install -y sshpass;”

#遠端主機,將公鑰同步到其他機器

sshpass -p${passwd} ssh $user@${head_ip}${ip} “sshpass -p${passwd} ssh-copy-id $user@${head_ip}${tmp_ip} -o StrictHostKeyChecking=no”

#遠端主機,將公鑰同步localhost主機名下

sshpass -p${passwd} ssh $user@${head_ip}${ip} “sshpass -p${passwd} ssh-copy-id $user@localhost -o StrictHostKeyChecking=no”

done

done

echo -e “分發完結\n”

}

check_ip(){

for ip in ${arr[@]}

do

pssh -H ${head_ip}${ip} -i $1

done

}

bat()

{

echo “輸出ok:”;

check_ip ‘echo “ok”’

echo “輸出ping結果:”;

check_ip ‘ping qq。com -c 2’

echo “獲取主機名:”;

check_ip ‘ls ~/。ssh’

echo “獲取主機名:”;

check_ip “source /etc/profile;ip a | grep inet | grep ${head_ip}”

}

main(){

install_cmd;

create_key;

bat

}

main

推薦文章

  • 春分,去婺源看油菜花

    開化這時候氣溫比婺源要低一些,但春分前後和婺源一樣都比較多雨,江南這時候的雨不像梅雨那麼執念,下下停停反倒讓油菜花嬌豔欲滴,而且一般是早上或者夜間容易下雨,我覺得相比於多霧的清晨,夕陽的黃昏拍攝油菜花,天氣更可控...

  • 霧靄霏微江上正秋風,店家沽酒歸來雨打篷

    霧靄霏微江上正秋風,店家沽酒歸來雨打篷翠微深處掩柴門,雲飛日色昏,竹徑無人半啟待歸禽...

  • 誅仙:書中四靈血陣缺失的主線,雙靈血陣困燭龍

    誅仙:書中四靈血陣缺失的主線,雙靈血陣困燭龍小說中,當年鬼王在東海流波山中收服的夔牛,西方大沼澤鬼歷找到的黃鳥和鬼厲在獸神大戰之後赴南疆收服的獸神身邊的異獸饕餮,再加上魔教總壇守護獸燭龍一起造就了傳說中的四靈血陣,鬼王將四種神獸放入巨大的血池之中,伏龍鼎不斷吸收它們的靈力,以為在七七...