#!/bin/bash
host_name=(
wyl01
wyl02
wyl03
)
host_ip=(
10.10.252.151
10.10.251.101
10.10.252.117
)
#1 步骤输出 紫色
#2 正确输出 绿色
#3 错误输出 红色
#4 提示输出 蓝色
#5 警告输出 黄色
function echo_fun(){
if [ $# -ge 2 ];then
params_num=$1
shift 1
params_mes=$@
else
echo_fun 3 请至少输入两个参数 echo_fun ..
exit
fi
case $params_num in
1)
echo -e "\033[35;40;1m ****************************** ${params_mes} ******************************\033[0m\r\n"
;;
2)
echo -e "\033[32;40;1m ${params_mes}\033[0m\r\n"
;;
3)
echo -e "\033[31;40;1m ${params_mes}\033[0m\r\n"
;;
4)
echo -e "\033[36;40;1m ${params_mes}\033[0m\r\n"
;;
5)
echo -e "\033[33;40;1m ${params_mes} \033[0m\r\n"
;;
*)
echo_fun 3 参数异常第一个参数应为1,2,3,4,5
;;
esac
}
#修改配置内容,需要免密码登录的用户
function add_user(){
echo_fun 1 添加用户,并设置免秘钥登录
echo_fun 5 请输入用户名:
read user
username=${user}
echo_fun 5 请输入用户密码:
read pass
password=${pass}
echo -e "\n"
for ((i=0;i<${#host_name[*]};i++))
do
echo_fun 4 ${host_name[i]}机器添加用户,并设置密码
ssh -Tq ${host_name[i]} <<remotessh
useradd -d /home/$username $username
expect -c"
spawn passwd $username
expect {
\"*yes/no*\" {send \"yes\r\";exp_continue}
\"*New password:*\" {send \"${password}\r\";exp_continue}
\"*Retype new password:*\" {send \"${password}\r\";exp_continue}
}"
exit
remotessh
echo -e "\n"
done
}
#创建秘钥
function ssh_keygen_fun(){
echo_fun 4 创建秘钥
su - $username <<EOF
expect -c"
spawn ssh-keygen -t rsa
set timeout 30
expect {
\"*.ssh/id_rsa*\" {send \"\r\";exp_continue}
\"*Overwrite*\" {send \"y\r\";exp_continue}
\"*empty for no passphrase*\" {send \"\r\";exp_continue}
\"*Enter same passphrase again:*\" {send \"\r\";exp_continue}
}
"
EOF
if [ $? -eq 0 ];then
echo_fun 2 创建秘钥成功
else
echo_fun 3 创建秘钥失败
fi
}
#免密钥到其他机器
copy_ssh_keygen(){
echo_fun 4 当前用户和机器免疫到集群的其他机器
for ((i=0;i<${#host_name[*]};i++))
do
su $username<<EOF
expect -c"
spawn ssh-copy-id -i /home/$username/.ssh/id_rsa.pub $username@${host_name[i]}
expect {
\"*yes/no*\" {send \"yes\r\";exp_continue}
\"*password:*\" {send \"$password\r\";exp_continue}
}"
EOF
done
if [ $? -eq 0 ];then
echo_fun 2 设置免秘钥成功
else
echo_fun 3 设置免秘钥失败
fi
}
add_user
ssh_keygen_fun
copy_ssh_keygen
切换用户,验证一下: