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 |
做一个决定,并不难,难的是付诸行动,并且坚持到底。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)