當前位置:
首頁 > 知識 > linux 批量ssh認證

linux 批量ssh認證

<pre name="code" class="sql">redis01:/root# cd .ssh

-bash: cd: .ssh: No such file or directory

redis01:/root# pwd

/root

redis01:/root# cd .ssh

redis01:/root/.ssh# ls

known_hosts

redis01:/root/.ssh# ls

id_rsa id_rsa.pub known_hosts

自動化ssh 腳本:

#root用戶初始化腳本,initroot.sh

if [ ! $# -eq 2 ] ;then

echo "請輸入用戶密碼以空格分開"

exit

else

ssh-keygen -t rsa

#用戶名

uname="$1"

#密碼

passwd="$2"

fi

#執行檢測並安裝expect模塊

ep=`rpm -qa | grep expect`

if [ -z $ep ] ; then

echo "檢測到你的系統,沒有安裝expect模塊,準備執行安裝"

sleep 2

yum install -y expect

else

echo "已經安裝expect模塊,3秒後,開始執行ssh文件同步"

sleep 3

fi

#公鑰無ssh認證模塊

cat hosts | while read host

do

echo "當前正在向$host上傳輸ssh文件"

expect <<EOF

spawn scp -r .ssh/ $host:/$uname

expect {

"*yes/no" {send "yes
" ;exp_continue}

"*password:" {send "$passwd
" ;exp_continue }

}

EOF

echo "當前正在$host上進行公鑰認證....."

sleep 2

expect <<EOF

spawn ssh-copy-id -i .ssh/id_rsa.pub $host

expect {

"*yes/no" {send "yes
" ;exp_continue}

"*password:" {send "$passwd
" ;exp_continue }

}

EOF

echo "認證成功...."

done

#切換root許可權進行hosts文件分發

echo "同步本機的hosts文件到各個機器上"

sleep 1

#同步本機的hosts文件到其他各個機器上

cat hosts | while read host

do

scp -r /etc/hosts $host:/etc/

done

echo "同步hosts文件完畢"

A->B B-> 相互信任 A 腳本需要ssh-keygen -t rsa B不需要

linux 批量ssh認證

打開今日頭條,查看更多精彩圖片

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

SQLServer中char、varchar、nchar、nvarchar的區別
Hugo + github 搭建個人博客

TAG:程序員小新人學習 |