要求:
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...