Linux下堡垒机认证
加进自己的验证机制来控制ssh到某台Linux机的用户。
比如,给三个用户登进该Linux主机的权限。
用户名和密码 如下。
Lucy:123
Ben:456
Jerry:789
如果某个用户输入密码错误达到三次,则将该用户账户锁住。
也就是在ssh 登录之前进行验证。
脚本如下
AccountFile=自行定义。
# pre
if [ ! -e $AccountFile ];then
cat >$AccountFile<<EOF
Lucy:123:0
Ben:456:0
Jerry:789:0
EOF
fi 如果文件不存在,使用默认
# main process
while true;do
echo -e "\033[32m Welcome to Linux Club\033[0m" 输出欢迎菜单
read -p "Please input your username: " username
AccountUser=`awk -F: '{print $1}' $AccountFile` awk获取文件的第一列,得到用户名
# echo Account user is $AccountUser
for Name in $AccountUser;do 在文件的用户名中遍历查找与用户输入一致的
if [ x$Name == x$username ];then
Pass=$(grep $username $AccountFile|awk -F: '{print $2}')
Count=$(grep $username $AccountFile|awk -F: '{print $3}')
if [ $Count -lt 3 ];then 验证密码已经 错误的次数是否小于三次
read -s -p "Please input your passwd: " passwd
echo ""
if [ x$Pass == x$passwd ];then
sed -i "/$username/s/:[0-9]$/:0/" $AccountFile密码正确,将错误次数置零
echo welcome
bash
else
echo wrong pass
let Count=$Count+1
sed -i "/$username/s/:[0-9]$/:$Count/" $AccountFile 将错误次数写回文件
break
fi
else
echo Your account has been locked
exit 5
fi
fi
done
done
将该脚本加进/etc/profile里。
sh /root/xcui/account.sh
之后再ssh进来的运行结果如下:
输入正确密码进入bash
输入错误密码,大于三次时锁账户。