Linux 集群免密配置指令碼

2021-10-01 06:08:10 字數 1613 閱讀 3011

指令碼也倆種方式,一種為手動輸入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,...