IT评测·应用市场-qidao123.com

标题: Shell脚本实现服务器多台免密 [打印本页]

作者: 渣渣兔    时间: 2025-3-19 20:39
标题: Shell脚本实现服务器多台免密
简介

本脚本(auto_ssh_batch.sh)用于在多台主机之间快速配置SSH免密登录,并支持远程传输脚本/文件及实行命令。通过 pass 文件提供统一认证凭据,通过 nodes 文件定义目标主机列表,实现批量自动化操纵。
下载
  1. git clone https://gitee.com/wesley_li0/NoPassword.git
复制代码
特别说明(公司):

利用非root用户需要创建用户并添加root组,并且配置信任的sudo权限,可以利用命令实现
USER          : 用户名
PASSWORD:暗码
  1. 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
复制代码
前提条件

文件准备:确保以下文件及目录布局存在:
  1. /root/NoPassword/             # 脚本存放与用户家目录下
  2. ├── auto_ssh_batch.sh         # 主执行脚本
  3. ├── bin
  4. │   └── generate_ssh_key.sh   # 待分发的远程执行脚本
  5. ├── config
  6. │   └── nodes                 # 存储目标主机IP和节点ID
  7. └── main
  8.     └── sshpass-1.06-2.el7.x86_64.rpm  # sshpass安装包
复制代码
配置文件格式

**nodes**** 文件**
每行定义一个目标主机的IP和节点ID (ID尽量与后续集群自动化脚本ID一致,若无实行集群脚本需求,ID自定义,仅作为输出机器标识利用),空格分隔:
  1. IP_Address Node_ID User Password
复制代码
示例:
  1. 192.168.1.10 1 root root123
  2. 192.168.1.11 2 root root123
复制代码
脚本利用方法

SSH自定义端口
  1. - SSH 端口指定,修改 `auto_ssh_batch.sh` 脚本中的`SSH_PORT`变量
  2. - `SSH_PORT` 该变量用于指定 SSH 链接端口,默认 22
复制代码
放置依赖文件
  1. - 将 `sshpass` 的 RPM 包放入 `main/` 目录(默认已存在)。
  2. - 确保 `generate_ssh_key.sh` 脚本位于 `bin/` 目录。
复制代码
赋予实行权限,并实行脚本
  1. sudo chmod +x auto_ssh_batch.sh
  2. sudo sh auto_ssh_batch.sh
  3. # 脚本运行结束后使用ssh验证
  4. # 默认ssh端口
  5. ssh username@ip
  6. # 指定ssh端口
  7. ssh -p xx username@ip
复制代码
-------------------------脚本利用到此结束--------------------
脚本实行流程

留意事项

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4