SSHパスワードなしのログインスクリプトが自動的に設定 - ITは予約 - https://itbook.com/

オリジナルリンク:ITを予約- itbook.com

目的

クラスタ間のワンクリック設定は、パスワードなしのログインノード。すべてのノードでパスワードが同じであることを提供!

実現

私が来る〜/ nonpassword

スクリプトの内容:

#!/ binに/ のsh 

#すべてのノード名
NODES = ()  すべてのノードのパスワード
PASS = $ 1  
######検証引数長
nodes_length = $(($# - 1 ))
 であれば [[SS -gt 0 ] ]; その後、
  エコー your_passwordに、ノード1:少なくとも二つのパラメータ、例えば出口
  の出口を2  
Fiが
######すべてのノード名を取得
私は = 0の
ためノード * $を
 行う
   場合は、[[私は-gt 0 ;]] その後、
     J = $((I -1 ))
     [J] NODES = $ノード
    Fiを提供して
   みましょう私は ++
 完了
MASTERを = ` ホスト名は` 

yumを -y インストール期待

######################## ########### 
関数ssh_cmd0(){ 
user_and_host = $ 1 
パスワード = $ 2 
CMD = $ 3 
は/ usr / binが/期待<< - EOFが
タイムアウト設定5 
産卵のssh $ user_and_hostを
期待{ 
" はい/ノー {送信はい\ rを"; exp_continue}
 " パスワード" {送信" $パスワード\ R " } 
} 
期待する" "   
送信" $ CMD \ R " 
期待する" "  
出口0 
対話
EOF 
} 

関数は、(){ssh_cmd 
    ssh_cmd0 " $ 1 "  " $ 2 "  エコー'start_mark'; $ 3;エコー'end_mark' " | sedの -n ' / ^ start_mark /、/ ^ end_mark / Pを' | グリップ-Ev ' (^ start_mark | ^ end_mark)' 
} 

######マスターにすべてのノードのauthorized_keysに、そしてコレクションを作成します。
エコー "" >〜/。SSH / authorized_keysに
 エコー "" >〜/。SSH / known_hostsファイル

のための S $ {NODES [@]は}
 行う
  エコー -eを" \ n始動::スレーブノードは、($ S)id_rsa.pubを生成し、マスタノード($ MASTER)を送信する" 
  
  ssh_cmd " $ S @ルートを"  " $ PASS "  " RM -fの〜/ .ssh / id_rsaと;のssh-keygenは-t rsaの-P '' -f〜/。
  ssh_cmd " ルート@ $ S "  " $ PASS "  " 猫の〜/ .ssh / id_rsa.pub "   >>〜/。SSH / authorized_keysに
  
  エコー " DONE ::スレーブ・ノードは、($ s)は($ MASTER)マスターノードにid_rsa.pubと送信を生成し、"  
行って
コピーがすべてのノードにauthorized_keysにしcollectioned ######。
エコー -e " \ nは######################### ALLノードへのauthorized_keysを送る############## ########### " 
のための sの中に$ {NODES [@]}
 やる
    エコー -e "\ n始動::マスターノード($ MASTER)($ s)はスレーブノードにALL id_rsa.pub(authorized_keysの)を送るには、 "     
    
    ssh_cmd " ルート@ $ S "  " $ PASS "  " エコー'`猫の〜/ .ssh / authorized_keys`' >の〜/ .ssh / authorized_keysに" 
    
    エコー -e " DONE ::マスターノード($ MASTER)スレーブノード($ s)は\ nにALL id_rsa.pub(authorized_keysの)を送る"    

エコー " コンプリート!"
chomd + X〜/ nonpassword

使い方

スクリプトの使用法:

〜/ nonpassword <パスワード> <ノード1> <ノード2> <ノード...>

パスワード:すべてのノードは同じパスワードでなければなりません。

具体用例:

〜/ nonpassword ' mypasswordという'ノード1ノード2ノード3

成功した実行した後、我々はその後、ノード1、node2.node3パスワードなしのログイン、および、そのような搭乗してきたノード1の間で、その後、node1で直接コマンドを実行することができ、ノード2にログオンすることができます。

sshのノード2

それはすることができます。

おすすめ

転載: www.cnblogs.com/itbook-com/p/12539760.html