1.在A機生成公鑰和私鑰node
ssh-keygen -t rsa –P
通常採用的ssh的rsa密鑰:
id_rsa 私鑰
id_rsa.pub 公鑰
下述命令產生不一樣類型的密鑰
ssh-keygen -t dsa
2.把A機下的/root/.ssh/id_rsa.pub 複製到B機的 /root/.ssh/authorized_keys文件裏,先要在B機上建立好 /$HOME/.ssh 這個目錄,用scp複製。ssh
scp XXX@192.168.1.12:/$HOME/.ssh/id_rsa.pub $HOME/.ssh/
cat id_rsa.pub >>$HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
3.若是要互相免密碼登錄,則須要在將B機的公鑰拷貝到A機上。spa
4.執行腳本code
sudo yum install expect. function settingSShNoLogin(){ echo "setting ssh no login" pwd="\r" keyGen="ssh-keygen -t rsa -f $HOME/.ssh/id_rsa" chmod="chmod g-w $HOME/.ssh/authorized_keys" machinedPwd="*****" echo "step 1->setting private key" $keyGen echo "step 2->chmod for public key" if [ ! -f "$HOME/.ssh/authorized_keys" ];then cat > $HOME/.ssh/authorized_keys fi cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys $chmod echo "step 3->merge authorized_keys file" OLD_IFS="$IFS" IFS="," nodeHosts=($NODE_HOSTS) IFS="$OLD_IFS" for node in ${nodeHosts[@]} do if [ "$node" != "$machine_name" ]; then expect -c "set timeout -1; spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub conversant@$node; expect { *(yes/no)* {send -- yes\r;exp_continue;} *assword:* {send -- $machinedPwd\r;exp_continue;} eof {exit 0;} }"; fi done }