保姆级教程:多台SSH与宝塔面板统一管理搭建,运维效率翻倍
前言作为运维或多服务器使用者你是否遇到过这样的困扰——手里有多台云服务器每台都要单独打开SSH工具输入IP、端口、密码登录宝塔面板也要逐个输入地址访问切换来切换去繁琐又耗时今天就分享一套实操方案教你搭建多台SSH与宝塔面板统一管理平台一次登录、集中操作彻底解放双手让运维效率直接拉满本文全程实操适配CentOS、Ubuntu等主流Linux系统无论是新手还是老运维跟着步骤走都能快速上手原创首发严禁转载建议收藏备用一、搭建前准备必看1.1 环境要求一台核心管理服务器建议2核4G及以上系统CentOS 7/8、Ubuntu 20.04/22.04确保网络通畅能访问外网和其他被控服务器多台被控服务器需安装SSH服务、宝塔面板系统无强制要求只要能与管理服务器互通所有服务器关闭防火墙限制或开放对应端口下文会详细说明管理服务器需安装Python 3.6大部分Linux系统默认自带无则手动安装。1.2 核心工具选择本次统一管理平台核心采用「Ansible Shell脚本 宝塔API」组合优势如下Ansible轻量级自动化运维工具无需在被控服务器安装客户端通过SSH协议实现批量管理上手简单Shell脚本实现宝塔面板的集中调用、状态监控简化重复操作宝塔API宝塔面板自带的接口可实现远程登录、站点管理、插件操作等无需手动打开网页。补充无需额外搭建复杂的Web管理界面通过终端和简单配置即可实现多台SSH宝塔的统一管控兼顾轻便性和实用性。二、分步搭建从基础配置到统一管控找源码就来会员源码网第一步管理服务器基础配置核心步骤先对管理服务器进行初始化配置确保能正常连接所有被控服务器这是统一管理的前提。1. 关闭防火墙/开放端口管理服务器需要与被控服务器通过SSH22端口、宝塔面板默认8888端口通信建议临时关闭防火墙生产环境可开放对应端口。CentOS系统命令# 关闭防火墙 systemctl stop firewalld # 禁止防火墙开机自启 systemctl disable firewalld # 查看防火墙状态确认已关闭 systemctl status firewalldUbuntu系统命令# 关闭防火墙 ufw disable # 查看防火墙状态 ufw status2. 安装Ansible管理服务器Ansible是批量管理SSH的核心通过yum或apt命令快速安装步骤如下CentOS系统yum安装# 安装epel源Ansible依赖epel源 yum install -y epel-release # 安装Ansible yum install -y ansible # 查看Ansible版本确认安装成功 ansible --versionUbuntu系统apt安装# 更新apt源 apt update # 安装Ansible apt install -y ansible # 查看版本 ansible --version安装成功提示出现ansible [version]说明安装完成若失败可尝试重启服务器后重新安装。3. 配置SSH免密登录关键为了让管理服务器能无密码登录所有被控服务器需要配置SSH免密认证避免每次登录都输入密码。# 1. 管理服务器生成SSH密钥一路回车无需输入密码 ssh-keygen -t rsa # 2. 复制密钥到被控服务器替换【被控服务器IP】为实际IP按提示输入被控服务器密码 ssh-copy-id root【被控服务器IP】 # 3. 测试免密登录无需输入密码即可登录说明配置成功 ssh root【被控服务器IP】注意每台被控服务器都要执行「ssh-copy-id」命令将管理服务器的密钥复制过去完成免密配置。如果被控服务器SSH端口不是默认22需在命令后加上「-p 端口号」例如ssh-copy-id -p 2222 root192.168.1.100。第二步Ansible批量管理SSH核心功能实现配置Ansible主机清单将所有被控服务器的信息录入即可实现批量登录、批量执行命令无需逐台操作。1. 编辑Ansible主机清单Ansible的主机清单默认路径为 /etc/ansible/hosts编辑该文件添加被控服务器信息# 编辑主机清单 vim /etc/ansible/hosts在文件末尾添加如下内容按实际情况修改可分组管理方便区分服务器用途# 分组web服务器可自定义组名 [web_servers] web1 ansible_host192.168.1.101 ansible_port22 ansible_userroot web2 ansible_host192.168.1.102 ansible_port2222 ansible_userroot # 非默认端口 # 分组数据库服务器 [db_servers] db1 ansible_host192.168.1.201 ansible_port22 ansible_userroot保存退出vim编辑器按Esc输入:wq回车。2. 测试批量连接执行如下命令测试管理服务器能否批量连接所有被控服务器# 测试所有服务器连接all表示所有分组 ansible all -m ping # 测试单个分组如web_servers ansible web_servers -m ping成功提示每台服务器返回「pong」说明批量连接成功若失败检查SSH免密配置、被控服务器IP/端口是否正确以及防火墙是否关闭。3. 批量执行SSH命令实用功能连接成功后即可通过Ansible批量执行命令无需逐台登录示例如下# 批量查看所有服务器系统版本 ansible all -m command -a cat /etc/redhat-release # CentOS系统 ansible all -m command -a cat /etc/lsb-release # Ubuntu系统 # 批量重启所有web服务器 ansible web_servers -m command -a reboot # 批量查看服务器CPU使用率 ansible all -m command -a top -b -n 1 | grep Cpu补充Ansible支持更多复杂操作如批量安装软件、批量修改配置后续可根据需求拓展核心是通过「ansible 分组/所有 -m 模块 -a 命令」实现批量管控。第三步宝塔面板统一管理API调用实现宝塔面板默认需要通过网页登录多台面板切换繁琐我们通过「宝塔API Shell脚本」在管理服务器上集中调用所有宝塔面板的功能实现统一管理。1. 开启被控服务器宝塔API每台被控服务器的宝塔面板都需要开启API接口并获取API密钥用于管理服务器调用步骤如下登录被控服务器的宝塔面板网页访问http://被控服务器IP:8888输入账号密码进入「面板设置」→「API接口」勾选「开启API接口」复制「API密钥」和「API地址」格式http://IP:8888/api保存备用每台服务器的密钥不同需单独记录建议关闭「API接口仅允许本地访问」若生产环境可设置允许管理服务器IP访问更安全。注意宝塔面板默认端口是8888若修改过端口需在API地址中替换如http://192.168.1.101:8889/api。2. 管理服务器编写Shell脚本统一调用宝塔API在管理服务器上编写Shell脚本整合所有被控服务器的宝塔API信息实现批量查询、操作宝塔面板无需逐个打开网页。示例脚本实现批量查看宝塔面板状态、站点列表# 新建脚本文件命名为bt_manage.sh vim bt_manage.sh # 脚本内容按实际情况修改服务器信息、API密钥 #!/bin/bash # 宝塔面板统一管理脚本 # 定义被控服务器宝塔信息可添加多台格式IP 端口 API密钥 bt_servers( 192.168.1.101 8888 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 192.168.1.102 8888 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy ) # 批量查看所有宝塔面板状态 echo 所有宝塔面板状态 for server in ${bt_servers[]}; do IP$(echo $server | cut -d -f1) PORT$(echo $server | cut -d -f2) KEY$(echo $server | cut -d -f3) # 调用宝塔API查询面板状态 status$(curl -s http://$IP:$PORT/api?actionGetPanelStatusrequest_token$KEYversion1.0.0) echo 服务器$IP:$PORT 状态$status done # 批量查看所有宝塔面板站点列表 echo -e \n 所有宝塔面板站点列表 for server in ${bt_servers[]}; do IP$(echo $server | cut -d -f1) PORT$(echo $server | cut -d -f2) KEY$(echo $server | cut -d -f3) # 调用宝塔API查询站点列表 sites$(curl -s http://$IP:$PORT/api?actionGetWebSiteListrequest_token$KEYversion1.0.0) echo -e 服务器$IP:$PORT 站点$sites done保存退出后给脚本添加执行权限并运行# 添加执行权限 chmod x bt_manage.sh # 运行脚本 ./bt_manage.sh运行结果会依次输出每台服务器的宝塔面板状态、站点列表无需逐个登录网页实现集中查看。3. 拓展宝塔API功能按需添加宝塔API支持更多操作如创建站点、重启面板、安装插件、备份站点等可在脚本中添加对应API调用示例如下重启宝塔面板curl -s http://IP:PORT/api?actionRestartPanelrequest_tokenKEYversion1.0.0创建站点curl -s http://IP:PORT/api?actionAddWebSiterequest_tokenKEYversion1.0.0domainxxx.compath/www/wwwroot/xxx.com备份站点curl -s http://IP:PORT/api?actionBackupWebSiterequest_tokenKEYversion1.0.0domainxxx.com宝塔API完整文档登录宝塔面板进入「API接口」点击「API文档」可查看所有支持的操作及参数按需修改脚本即可。第四步统一管理平台优化提升实用性基础搭建完成后可进行如下优化让管理更便捷、更安全。1. Ansible配置优化简化命令编辑Ansible配置文件 /etc/ansible/ansible.cfg添加如下配置简化批量操作命令[defaults] # 默认用户无需每次输入ansible_userroot remote_user root # 超时时间避免连接超时 timeout 30 # 开启详细输出便于排查错误 verbose 12. 脚本优化添加交互、错误处理对宝塔管理脚本进行优化添加交互功能如选择操作类型、错误处理如连接失败提示示例如下新增部分# 交互选择操作 echo 请选择要执行的操作 echo 1. 查看所有宝塔面板状态 echo 2. 查看所有站点列表 echo 3. 重启所有宝塔面板 read -p 输入操作编号 opt case $opt in 1) # 查看状态省略重复代码 ;; 2) # 查看站点省略重复代码 ;; 3) # 重启面板省略重复代码 ;; *) echo 输入错误请重新运行脚本 exit 1 ;; esac3. 安全优化生产环境必做关闭SSH密码登录仅允许密钥登录修改被控服务器 /etc/ssh/sshd_config设置 PasswordAuthentication no重启SSH服务systemctl restart sshd限制API访问宝塔面板API仅允许管理服务器IP访问在「API接口」中设置「允许访问的IP」定期更换API密钥、SSH密钥避免泄露开启管理服务器防火墙仅开放必要端口如22端口供本地登录管理。三、常见问题排查避坑指南1. Ansible ping失败原因及解决方法SSH免密配置失败重新执行 ssh-copy-id 命令确保密钥复制成功被控服务器防火墙未关闭检查防火墙状态开放22端口主机清单配置错误检查IP、端口、用户名是否正确无多余空格。2. 宝塔API调用失败原因及解决方法API未开启登录宝塔面板确认「API接口」已开启API密钥错误核对每台服务器的API密钥避免混淆端口错误若宝塔面板修改过默认端口需在API地址中替换网络不通检查管理服务器能否访问被控服务器的宝塔面板网页http://IP:PORT。3. 批量执行命令无响应原因及解决方法部分被控服务器离线检查服务器状态确保网络通畅命令不适用于部分系统如CentOS和Ubuntu的系统版本查询命令不同需按分组执行Ansible超时修改配置文件中的timeout参数延长超时时间。四、总结本文通过「Ansible 宝塔API」的组合实现了多台SSH与宝塔面板的统一管理核心优势的是「轻量、无客户端、易上手」无需搭建复杂的Web平台仅通过终端和简单脚本就能完成批量登录、批量执行命令、宝塔面板集中管控等操作。无论是个人运维多台服务器还是企业级批量管控这套方案都能大幅提升效率减少重复操作。后续可根据需求拓展Ansible的自动化功能如批量部署项目、批量备份数据以及宝塔API的更多操作让运维工作更轻松。

相关新闻

CentOS 6-9哪个版本最稳定?一篇读懂,避免踩坑!

CentOS 6-9哪个版本最稳定?一篇读懂,避免踩坑!

CentOS 6-9哪个版本最稳定?一篇读懂,避免踩坑! 作为一名长期深耕Linux服务器运维的开发者,经常被身边同事和粉丝问起:「CentOS 6到9,到底哪个版本最稳定?」「新项目部署选哪个?」「…

2026/7/3 14:08:01 阅读更多 →
特价股票与公司跨界数字化协同创新能力的关系研究

特价股票与公司跨界数字化协同创新能力的关系研究

特价股票与公司跨界数字化协同创新能力的关系研究 关键词:特价股票、公司跨界数字化协同创新能力、股票价格、数字化转型、协同创新 摘要:本文旨在深入研究特价股票与公司跨界数字化协同创新能力之间的关系。通过对相关核心概念的剖析,阐述其…

2026/7/3 14:08:05 阅读更多 →
数据立方体与联邦学习:隐私保护分析方案

数据立方体与联邦学习:隐私保护分析方案

数据立方体与联邦学习:隐私保护分析方案 关键词:数据立方体、联邦学习、隐私保护、多维分析、分布式计算 摘要:在数据驱动决策的时代,企业和机构既需要挖掘数据价值,又面临隐私保护的严格约束。本文将带你探索“数据立方体”与“联邦学习”这对“隐私保护CP”——前者擅长…

2026/7/3 3:22:56 阅读更多 →

最新新闻

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城本地特色食品以粮食醋发酵、杂粮深加工、小型卤味加工为主,大量酿造车间会长期挥发酸性气体,食品净化车间、无尘厂房改造经常遇到墙面腐蚀掉皮的困扰,和普通车间工况有明显区别,照搬通用板材很容易短期报废。 本地多家醋业厂房…

2026/7/3 14:45:10 阅读更多 →
HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL 批量生产出现堵孔、锡桥、露铜、焊盘共面度差、板材起泡翘曲等缺陷,七成根源并非制程管控问题,而是前期 PCB 布局、焊盘、孔径、板材选型未匹配喷锡工艺特性,设计先天存在 DFM 缺陷。本文从板材选型、焊盘结构、通孔孔径、大面积铜设计、…

2026/7/3 14:43:09 阅读更多 →
Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理 【免费下载链接】kiran-screensaver This program provides screensaver backend. 项目地址: https://gitcode.com/openeuler/kiran-screensaver 前往项目官网免费下载:https://ar.openeuler…

2026/7/3 14:41:08 阅读更多 →
lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性 【免费下载链接】lboot a lightweight bootloader implemented by the Rust language 项目地址: https://gitcode.com/openeuler/lboot 前往项目官网免费下载:https://ar.openeuler.org/a…

2026/7/3 14:41:08 阅读更多 →
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

目录一、移位相关问题1.1 类型提升规则1.2 移位运算注意事项1.3 N位编码满量程值二、简称和符号含义2.1 通信协议相关**FDCAN****HSE****PLL****PCLK**2.2 CANopen 相关术语**PDO****SDO****PDO vs SDO 对比表****cob_id****CoE****BRS**2.3 数学符号三、交流与反馈欢迎大家有问…

2026/7/3 14:39:04 阅读更多 →
13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

1. 项目背景与核心需求 在工业自动化、机器人导航和智能穿戴设备领域,精确的定位与运动追踪一直是技术难点。传统方案往往采用独立的惯性测量单元(IMU)与主控芯片分离的设计,导致系统延迟高、数据同步困难。这个项目创新性地将13自由度(13DOF)传感器与TM…

2026/7/3 14:39:04 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻