指令碼也倆種方式,一種為手動輸入ip列表,第二種通過/etc/host 自動獲取 配置的網域名稱列表進行免密配置
自動獲取配置ip列表(方式1):
#!/usr/bin/bash
# 安裝expect,minimal沒有此rpm包,需聯網或有本地yum源
yum install expect -y
expect << eof
set timeout 10
# 建立公有金鑰
spawn ssh-keygen -t rsa
expect
"*(y/n)"
"enter passphrase"
"enter same passphrase"
}eof
# 獲取/etc/hosts檔案中除localhost的對映關係
ip_list=`grep -v 'localhost' /etc/hosts | awk -f ' ' ''`
for ip in $ip_list
doexpect << eof
set timeout 2
# 傳送公有金鑰
spawn ssh-copy-id root@$ip
expect
"password"
}# 拷貝/etc/hosts檔案到遠端機器
spawn scp /etc/hosts $ip:/etc
expect
"password"
}eofdone
手動配置ip列表(方式2):
#!/bin/bash
# passwdless.sh
# echo
# -n 不要在最後自動換行
# -e 處理特殊字元
# expect是乙個免費的程式設計工具語言,用來實現自動和互動式任務進行通訊,而無需人的干預。
# expect是不斷發展的,隨著時間的流逝,其功能越來越強大,已經成為系統管理員的的乙個強大助手。
# expect需要tcl程式語言的支援,要在系統上執行expect必須首先安裝tcl。(原始碼安裝要注意)
yum install expect -y #安裝expect
echo "按enter鍵3次即可"
# 生成秘鑰(按enter鍵3次即可生成)
ssh-keygen -t rsa
servers="192.168.24.150 192.168.24.151 192.168.24.152" #需要配置的主機名
#servers="vm150 vm151 vm152"
password=root #需要配置的主機登入密碼
#將本機生成的公鑰複製到其他機子上
#如果(yes/no)則自動選擇yes繼續下一步
#如果password:怎自動將password寫在後面繼續下一步
auto_ssh_copy_id()
*password:*
eof
}";}
ssh_copy_id_to_all()
ssh_copy_id_to_all
儲存在 passwordless.sh 即可執行檔案 集群免密登入指令碼
bin bash 免密登入 配置 需要幾台伺服器免密登入引數就寫幾台 if lt 1 then echo 沒有輸入引數,請輸入相應的引數,如hadoop102 exit fiecho 在 1生成私鑰和公鑰 echo ssh 1 ssh keygen t rsa for host in do echo...
linux 集群免密登入,雙向免密,詳細
ssh keygen t rsa之後根據提示,回車 進入.ssh目錄會看見id rsa 私鑰 和id rsa.pub 公鑰 兩個檔案。拷貝到bigdata2主機 ssh copy id i ssh id rsa.pub root bigdata2 拷貝到bigdata3主機 ssh copy id ...
linux伺服器集群配置免密
目錄 配置免密的背景 正文 前提 1 生成公鑰和私鑰檔案 2 將公鑰檔案內容匯入到本機認證檔案 3 將認證檔案遠端拷貝到4這台伺服器的root ssh 目錄下 4.驗證 比如現在有兩台在同乙個區域網內的伺服器192.168.1.3和192.168.1.4。以下簡稱3和4 3這台伺服器分配了外網ip,...