歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 批量部署ssh認證

批量部署ssh認證

日期:2017/3/1 14:47:25   编辑:關於Linux
批量部署ssh認證 我想,當搭建hadoop集群的時候大家都會碰到一個問題,手動配置ssh雙向認證,當集群規模很小時候還能忍受,但是假如配置幾十台乃至上百台節點的時候難道也要手動配置嗎? 所以推薦用腳本來批量解決這個問題,網絡上有不少相關解答,但都不太好用,在此從新記錄下。 1,安裝所需要的rpm包,tcl-8.4.13-3.ML5.x86_64.rpm,expect-5.43.0-8.el5.x86_64.rpm,我用的linux為redhat6.1 x86_64,經測試沒有問題 2,腳本代碼 Java代碼 #!/bin/bash #2013-09 #創建本地公鑰 if [ ! -d /root/.ssh ];then expect -c " spawn ssh-keygen -t dsa expect { \"*key*\" {send \"\r\"; exp_continue} \"*passphrase*\" {send \"\r\"; exp_continue} \"*again*\" {send \"\r\";} } " fi ssh-add ~/.ssh/id_dsa #需要手動加載下私鑰 #批量ssh認證建立 for p in $(cat /root/ip.txt) #注意ip.txt文件的絕對路徑 do ip=$(echo "$p"|cut -f1 -d":") #取ip.txt文件中的ip地址 password=$(echo "$p"|cut -f2 -d":") #取ip.txt文件中的密碼 #expect自動交互開始 expect -c " spawn ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip expect { \"*yes/no*\" {send \"yes\r\"; exp_continue} \"*password*\" {send \"$password\r\"; exp_continue} \"*Password*\" {send \"$password\r\";} } " ssh root@$ip '/root/slave_master.sh' #調用遠程腳本 done 3,ip.txt 需要部署的ip+密碼 Java代碼 10.185.224.105:123456 10.185.224.104:123456 10.185.224.103:123456 4,說明 對於遠程節點上的腳本和本機腳本無太多區別,再部署之前需要用腳本把遠程腳本拷貝好
Copyright © Linux教程網 All Rights Reserved