一、背景

很多时候运维或安全工作人员需要维护大量的服务器,其中就包括判断是否存在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”密码部分即可。

定期批量修改远程服务器root密码的更多相关文章

  1. ansible批量修改linux服务器密码的playbook

    从网上找到批量修改Linux服务器root密码的playbook. 使用方法: 1.输入要修改的inventory组 2.按需要,在playbook中输入要修改的IP.新密码,如下: - hosts: ...

  2. 利用expect批量修改Linux服务器密码

    一个执着于技术的公众号 背景 修改Linux系统密码,执行passwd即可更改密码.可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下.因此采用批量修 ...

  3. 利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin

    1.利用phpmyadmin修改mysql的root密码 很多人利用phpmyadmin或者命令行来修改了mysql的root密码,重启后发现mysql登录错误,这是为什么呢?修改mysql的root ...

  4. Linux下修改MySql的root密码

    linux下如何修改Mysql的root密码     今天,忘了mysql下的root密码,想重置一下,但找了多个网站上的方法均有问题,最后参考几家的过程,经过不断尝试获得,终于成功了,下面特将过程分 ...

  5. 使用ansible批量管理远程服务器

    使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器: 2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全 ...

  6. My sql添加远程用户root密码为password

    添加远程用户root密码为password grant all privileges on *.* to root@localhost identified by '123321' with gran ...

  7. Windows如何修改MySQL用户root密码

    听语音 浏览:16925 | 更新:2015-06-12 14:49 | 标签:windows 1 2 3 4 5 6 分步阅读 MySQL是一个关系型数据库管理系统,在 WEB 应用方面 MySQL ...

  8. windows环境下修改Mysql的root密码

    最近一直没用Mysql,root密码给忘了,然后就自己修改了一下,现在整理一下步骤.(我的版本是5.1) 启动MySQL服务:>>net start mysql 关闭MySQL服务:> ...

  9. [XenServer] XenServer修改IP 以及 root密码

     A.修改IP以及DNS 1. root用户登录console 2.输入命令获得UUID xe pif-list 3.利用UUID查看之前的IP,注意替换下面的1111111111 xe pif-pa ...

随机推荐

  1. update pm storage

    BEGIN #Routine body goes here... INSERT INTO EMS_PM_STORAGE ( AMOID, GP_BEGIN_TIME, EMS_RECORD_TIME, ...

  2. uri.js的用法事例

    来源于:http://smoothprogramming.com/tutorials/get-set-query-string-values-from-url-using-uri-js/ Get or ...

  3. C#代码实现邮箱验证C#中及一些常用的正则表达式

    .验证用户名和密码:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位: .验证电 ...

  4. shell脚本启动node服务

    #!/bin/bash cd /root/dev-web source /etc/profile /usr/local/node-8.11.1/bin/npm i && EGG_SER ...

  5. ios中Pldatabase的用法(3)

    #import "ViewController.h" @interface ViewController () @property(nonatomic,retain)PLSqlit ...

  6. intellij idea强制更新索引

    intellij idea使用时间长了,许多包安了又卸.卸了又安,导致索引文件有些不正常. 删除~/.Intellij Idea/下的index和cache即可彻底更新.

  7. iOS 抓取 HTML ,CSS XPath 解析数据

    以前我们获取数据的方式都是使用 AFN 来 Get JSON 数据,比如 点我查看 JSON 数据.http://news-at.zhihu.com/api/4/news/latest 但例如下面的百 ...

  8. Js里面IF(var)表示什么意思?js中if的写法、含义

    Q:if(一个变量),没有> < !=这些半短逻辑, 什么时候为真 什么时候为假? A:是判断逻辑,javascript是弱变量类型语言,通俗地就是没有数据类型.任意值都有逻辑值(真或假) ...

  9. 【ASP.NET】@Model类型的使用详解

    有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NET Framework 4.0版本引入的System.Tuple类可以轻松满足这个需求. 假设Person和Produ ...

  10. 【Servlet】web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...