一、背景
很多时候运维或安全工作人员需要维护大量的服务器,其中就包括判断是否存在root弱口令,
如果服务器数量很多一一修改的话的确是要好花费不少时间精力的。如果通过脚本来实现密码更改,
再做一个定期任务的话,会节省很多人力。
二、设计思路
1. 配置服务器使用公钥登录
2. 编写远程密码更改脚本
3. 配置定时任务执行
三、具体步骤
1.1 配置服务器使用公钥登录
# ssh-keygen -t rsa
1.2 将本地生成的公钥scp到远程要更改密码的所有服务器主机上(如果远程服务器上没有/root/.ssh目录的话需要手动新建)
scp /root/.ssh/id_rsa.pub root@192.168.1.1:/root/.ssh/authorized_keys
2.1 创建远程密码更改脚本/root/test.sh
(密码:abc123456,要更改的远程主机:192.168.1.1,如果主机很多可以加在ip_array列表里)
#!/bin/bash remote_cmd="echo abc123456 | passwd --stdin root"
ip_array=(
"192.168.1.1"
)
for ip in ${ip_array[*]}
do
ssh root@$ip $remote_cmd
done
3. 配置定时任务执行(每天16:36分执行密码更改,可使用crontab -e -u user来编辑,以下命令来查看)
#crontab -l -u root * * * /root/test.sh
需要注意的是,所谓“定期”其实还是需要借助人工的,因为密码的更改每次都需要不一样,而每次更改为什么类型的强密码还是需要管理员自行判断,变更的时候只需要变更脚本里的“abc123456”密码部分即可。