博客
关于我
Linux服务器密码批量修改
阅读量:794 次
发布时间:2023-02-04

本文共 1778 字,大约阅读时间需要 5 分钟。

建立信任关系

在企业网络中,管理机与远程服务器之间的信任关系是日常运维的基础之一。本文将详细介绍如何通过生成SSH证书实现双方的互信,还将分享一个自动化shell脚本来批量修改远程服务器的密码。

1. 在管理机生成证书

生成SSH证书对是建立管理机与远程服务器之间信任关系的第一步。以下是操作步骤:

[root@manage ~]# ssh-keygen -t rsa

随后,系统会引导您输入生成证书的存储路径和密码。默认情况下,证书会被存储在/root/.ssh/id_rsa,公钥保存在/root/.ssh/id_rsa.pub

2. 将管理机上的公钥传送到各远程服务器

通过将管理机的公钥添加到远程服务器的~/.ssh/authorized_keys文件中,可以实现双向信任。以下是传输过程:

[root@manage .ssh]# scp id_rsa.pub 192.168.9.201:/root/.ssh/authorized_keys[root@manage .ssh]# scp id_rsa.pub 192.168.9.202:/root/.ssh/authorized_keys

注意:如果远程服务器修改了默认的SSH端口号,请在命令中添加 -P 17173(17173为具体端口号)。

通过shell脚本批量修改远程服务器密码

在企业环境中,批量修改远程服务器密码是一个常见需求。以下是一个自动化shell脚本的实现方案。

脚本概述

脚本主要功能包括:

  • 读取远程服务器IP列表
  • 生成随机密码
  • 批量修改远程服务器根账户密码
  • 记录操作日志
  • 脚本结构如下:

    #!/bin/bash# 读取IP列表IP_LIST=`cat /root/ip_list.txt`# 生成随机密码TMP_PWD=`mkpasswd -l 8 -C 3`# 生成文件名R_PWD=`echo ${IP}_${TMP_PWD}`

    密码生成与写入文件

    脚本将生成符合指定规格的随机密码,并将其写入文件R_PWD.txt中:

    TMP_PWD=`mkpasswd -l 8 -C 3`R_PWD=`echo ${IP}_${TMP_PWD}`echo "${IP}_${TMP_PWD}" > R_PWD.txt

    批量修改远程服务器密码

    脚本将根据IP列表,逐一连接远程服务器并修改密码:

    for IP in `cat /root/ip_list.txt`do  if [ $? = 0 ]  then    ssh $IP passwd root --stdin < R_PWD.txt    echo -e "$(date +%Y-%m-%d %H:%M:%S)  $IP  ${R_PWD}" >> R_Server.log  else    echo -e "$(date +%Y-%m-%d %H:%M:%S)  $IP  R_PWD.txt is create fail please check! " >> M_pass.log  fidone

    失败处理

    脚本还包含错误处理机制,确保在修改过程中出现异常时,能够记录详细日志:

    if [ $? = 0 ]then  echo -e "$(date +%Y-%m-%d %H:%M:%S) The $IP passwd is modify OK" >> M_pass.logelse  echo -e "$(date +%Y-%m-%d %H:%M:%S) The $IP passwd is modify fail please check! " >> M_pass.logfi

    安装依赖

    在使用mkpasswd之前,需要先安装expect工具:

    yum -y install expect

    注意事项

  • 如果远程服务器未修改默认SSH端口,默认使用22端口即可。
  • 确保ip_list.txt中仅包含有效的远程服务器IP地址。
  • mkpasswd的默认密码长度为10,包含2个数字、2个小写字母和2个大写字母。如果需要自定义规格,可以添加相关参数。
  • 总结

    通过以上方法,您可以轻松地建立管理机与远程服务器之间的信任关系,并使用自动化脚本批量修改远程服务器密码。这一解决方案既高效又安全,适合大规模企业网络环境。

    转载地址:http://fnkfk.baihongyu.com/

    你可能感兴趣的文章