SSH無口令全互連(指令碼)

2021-10-06 15:27:44 字數 2697 閱讀 2014

要求:

1.通過控制端,為被控端建立 新使用者及其口令

2.通過控制端,為被控端配置 彼此間通過新使用者的無口令ssh登入

## 建立被控端的主機列表檔案

cat > hosts.list << eof

10.0.0.102 root a123456!

10.0.0.103 root a123456!

10.0.0.104 root a123456!

eofchown root:root hosts.list

chmod 600 hosts.list

###建立指令碼###

touch ssh_nopass.sh

chown root:root ssh_nopass.sh

chmod 600 ssh_nopass.sh

##--------------------------------------------

vi ssh_nopass.sh ##編輯指令碼內容

###!/bin/bash

read -e -p "請輸入新建的使用者名稱:" newuser

read -e -s -p "請輸入新建使用者的密碼:" userpass

####1.實現root無口令ssh登入

which expect &> /dev/null |

| yum install -y expect

expect << eof

spawn ssh-keygen

expect

"*(y/n)?"

eof}

eofcat hosts.list |

while read hostinfo;

do host_ip=`echo

$hostinfo

| awk ''`

host_user=`echo

$hostinfo

| awk ''`

host_pass=`echo

$hostinfo

| awk ''`

expect <-

copy

-id $host_user@$host_ip

expect

"*password:"

eof}eof

done

####2.為被控端建立指定的使用者及口令

##cat hosts.list |

while read hostinfo;

do host_ip=`echo

$hostinfo

| awk ''`

host_user=`echo

$hostinfo

| awk ''`

ssh $host_user@$host_ip

<$newuser &> /dev/null |

| useradd $newuser

echo

"$newuser:$userpass"

| chpasswd

eofdone

####3.為主控端和被控端安裝:sshpass工具,用於執行非互動ssh密碼驗證

##which sshpass &> /dev/null |

| yum install -q -y sshpass

while read hostinfo;

do host_ip=`echo

$hostinfo

| awk ''`

host_user=`echo

$hostinfo

| awk ''`

ssh $host_user@$host_ip

| yum install -q -y sshpass

which expect &> /dev/null |

| yum install -q -y expect

eofdone < hosts.list

wait

echo

"sshpass工具安裝完畢!"

####4.為被控端建立新使用者的ssh金鑰,並配置彼此間通過新使用者的無口令ssh登入

##host_ip_list=$(

cat hosts.list | awk ''

)cat hosts.list |

while read hostinfo;

do host_ip=`echo

$hostinfo

| awk ''`

sshpass -p $userpass ssh $newuser@$host_ip

<##

##建立新使用者的ssh金鑰

/usr/bin/expect

expect

"*(y/n)?"

eof}

endecho

"$newuser@$host_ip新使用者的ssh金鑰建立完畢!"

####將新使用者的ssh公鑰傳輸給其他主機

for i in `echo $`;

do/usr/bin/expect

copy

-id $newuser@\$i

expect

"*password:"

eof}

end done

echo

"$newuser@$host_ip新使用者的ssh無口令登入配置完畢!"

eofdone

設定多節點間無口令SSH登入

本實驗的目的是要設定兩個節點間的ssh免密互信。這在設定hadoop集群。分布式資料庫時經常會用到。我們的環境假設有3臺機器,即互信的兩個節點和一台客戶機。客戶機可以是雲中的跳板機或你的膝上型電腦,總之是個第三方的機器。本例使用的是我的膝上型電腦。首先在雲中建立兩台centos 7虛機,node01...

ssh無金鑰登陸指令碼

bin sh ssh keygen t rsa p f ssh id rsa cp ssh id rsa.pub ssh authorized keys bin sh read p 輸入遠端伺服器ip ip ssh copy id o stricthostkeychecking no i ssh i...

ssh無密碼登入 及集群分發指令碼

ssh無密碼登入 配置基本語法 ssh 另一台電腦 無金鑰配置 免密碼登入原理 生成公鑰和私鑰 ssh keygen t rsa 然後敲回車 就會生成兩個檔案id rsa 私鑰 id rsa pub 公鑰 將公鑰拷貝到要免密登入的目標機器上 lan hadoop100 ssh ssh copy id...