linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > Shell服务器多台免密

Shell脚本实现服务器多台免密登录操作

作者:樵夫

本文介绍了auto_ssh_batch.sh脚本,用于在多台RHEL/CentOS7主机之间快速配置SSH免密登录,并支持远程传输脚本/文件及执行命令,脚本通过pass文件提供统一认证凭据,nodes文件定义目标主机列表,实现批量自动化操作,感兴趣的朋友一起看看吧

简介

本脚本(auto_ssh_batch.sh)用于在多台主机之间快速配置SSH免密登录,并支持远程传输脚本/文件及执行命令。通过 pass 文件提供统一认证凭据,通过 nodes 文件定义目标主机列表,实现批量自动化操作。

下载

git clone https://gitee.com/wesley_li0/NoPassword.git

特别说明(公司):

使用非root用户需要创建用户并添加root组,并且配置信任的sudo权限,可以使用命令实现

USER : 用户名

PASSWORD:密码

USER=your_user && PASSWORD=your_password && useradd -m -G root -s /bin/bash "$USER" && echo "$USER:$PASSWORD" | chpasswd && echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USER

前提条件

文件准备:确保以下文件及目录结构存在:

/root/NoPassword/             # 脚本存放与用户家目录下
├── auto_ssh_batch.sh         # 主执行脚本
├── bin
│   └── generate_ssh_key.sh   # 待分发的远程执行脚本
├── config
│   └── nodes                 # 存储目标主机IP和节点ID
└── main
    └── sshpass-1.06-2.el7.x86_64.rpm  # sshpass安装包

配置文件格式

**nodes**** 文件**
每行定义一个目标主机的IP和节点ID (ID尽量与后续集群自动化脚本ID一致,若无执行集群脚本需求,ID自定义,仅作为输出机器标识使用),空格分隔:

IP_Address Node_ID User Password

示例:

192.168.1.10 1 root root123
192.168.1.11 2 root root123

脚本使用方法

SSH自定义端口

- SSH 端口指定,修改 `auto_ssh_batch.sh` 脚本中的`SSH_PORT`变量
- `SSH_PORT` 该变量用于指定 SSH 链接端口,默认 22 

放置依赖文件

- 将 `sshpass` 的 RPM 包放入 `main/` 目录(默认已存在)。
- 确保 `generate_ssh_key.sh` 脚本位于 `bin/` 目录。

赋予执行权限,并执行脚本

sudo chmod +x auto_ssh_batch.sh 
sudo sh auto_ssh_batch.sh
# 脚本运行结束后使用ssh验证
# 默认ssh端口
ssh username@ip
# 指定ssh端口
ssh -p xx username@ip

-------------------------脚本使用到此结束--------------------

脚本执行流程

注意事项

通过以上步骤,您可快速完成多主机SSH免密登录配置及批量远程操作。

到此这篇关于Shell脚本实现服务器多台免密的文章就介绍到这了,更多相关Shell服务器多台免密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文