shell通过ssh批量修改centos密码

环境:centos7

思路:ssh与要修改的服务器免密。脚本读取文本中ip地址,然后远程修改密码,并将密码放入文本中。

1、准备ip地址文本

1
2
3
[root@186 ~]# cat ip
100.98.100.186
100.98.100.188

2、编写批量修改密码脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@186 ~]# more change-passwd.sh
#!/bin/bash
source /etc/profile
#人机交互是否执行批量修改密码
while true;do
        stty -icanon min 0 time 100
        echo -n "Automatic execute ten seconds after,Are you sure you want to start the task(yes or no)?"
        read Arg
        case $Arg in
                Y|y|YES|yes)
                  break;;
                N|n|NO|no)
                  exit;;
                ""#Autocontinue
                  break;;
        esac
done
 
#读取ip地址使用随机数作为密码修改root密码输入到文件ma.txt中
echo `date +"%Y年%m月%d日-%k:%M"` >> ma.txt
for ip in `cat ip`
    do
      p=`< /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo`
      echo $p
      echo $ip
      ssh $ip "echo $p|passwd --stdin root"
      if [ $? = '0' ]
        then
          echo $ip密码$p >> ma.txt
        else
          echo 'faild'
      fi
    done

3、赋权并执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@186 ~]# chmod u+x change-passwd.sh
[root@186 ~]# ./change-passwd.sh
Automatic execute ten seconds after,Are you sure you want to start the task(yes or no)?yes
zYUkJJNxEr
100.98.100.186
Changing password for user root.
passwd: all authentication tokens updated successfully.
42trLHphkA
100.98.100.188
Changing password for user root.
passwd: all authentication tokens updated successfully.
[root@186 ~]# cat ma.txt
100.98.100.186密码zYUkJJNxEr
100.98.100.188密码42trLHphkA

  

  

 

posted @   苍茫宇宙  阅读(658)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示