本文共 1778 字,大约阅读时间需要 5 分钟。
在企业网络中,管理机与远程服务器之间的信任关系是日常运维的基础之一。本文将详细介绍如何通过生成SSH证书实现双方的互信,还将分享一个自动化shell脚本来批量修改远程服务器的密码。
生成SSH证书对是建立管理机与远程服务器之间信任关系的第一步。以下是操作步骤:
[root@manage ~]# ssh-keygen -t rsa
随后,系统会引导您输入生成证书的存储路径和密码。默认情况下,证书会被存储在/root/.ssh/id_rsa
,公钥保存在/root/.ssh/id_rsa.pub
。
通过将管理机的公钥添加到远程服务器的~/.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脚本的实现方案。
脚本主要功能包括:
脚本结构如下:
#!/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
ip_list.txt
中仅包含有效的远程服务器IP地址。mkpasswd
的默认密码长度为10,包含2个数字、2个小写字母和2个大写字母。如果需要自定义规格,可以添加相关参数。通过以上方法,您可以轻松地建立管理机与远程服务器之间的信任关系,并使用自动化脚本批量修改远程服务器密码。这一解决方案既高效又安全,适合大规模企业网络环境。
转载地址:http://fnkfk.baihongyu.com/