基于Flask的SSH批量登录执行命令工具,支持并发执行和结果统计展示。

- SSH批量连接:支持同时连接多台主机执行命令
- 并发执行:多线程并发执行,提高效率
- 实时统计:执行过程中实时显示成功/失败统计
- 结果展示:详细的结果展示,包括标准输出和错误输出
- Su Root功能:支持使用su命令切换到root用户执行命令
- 统一配置:可统一设置登录信息,也可单独配置每台主机
- Web界面:基于Flask的Web界面,操作简便
SSH管理工具/
├── app.py # Flask主程序
├── config.py # 配置文件
├── accounts.json # 主机账户信息
├── build.py # 打包配置生成脚本
├── requirements.txt # 依赖包列表
├── static/ # 静态文件目录
│ ├── css/
│ └── js/
├── templates/ # 模板文件目录
│ └── index.html
├── utils/ # 工具模块目录
│ ├── __init__.py
│ ├── ssh_manager.py # SSH连接管理模块
│ ├── task_manager.py # 任务管理模块
│ └── helpers.py # 辅助函数模块
└── build/ # 打包配置文件目录
├── SSH管理工具-控制台版.spec
└── SSH管理工具-后台版.spec
- Python 3.7+
- Windows/Linux/macOS
pip install -r requirements.txt编辑 accounts.json 文件,添加主机信息:
[
{
"host": "192.168.1.100",
"port": 22,
"username": "root",
"password": "password"
},
{
"host": "192.168.1.101",
"port": 22,
"username": "user",
"password": "password"
}
]python app.py访问 http://localhost:5000 使用Web界面。
python build.py# Windows
build.bat
# 手动打包
pyinstaller build.spec- 在主页面配置统一的登录信息:
- 统一用户名(默认root)
- 统一密码
- 统一端口(默认22)
- Root密码(用于su root切换)
- Su Root功能:
- 勾选"使用Su Root切换"
- 填写root密码
- 系统会自动使用
su root切换到root用户执行命令
- 输入主机列表(每行一个IP地址)
- 点击"批量添加主机"按钮
# 支持注释(井号开头)
192.168.1.100
192.168.1.101
192.168.1.102
10.0.0.100
10.0.0.101
# 空行会被忽略
- 设置并发数量(默认10)
- 输入要执行的命令
- 选择执行范围(所有主机或已选择主机)
- 点击执行按钮开始批量执行
- 查看实时统计和详细结果
Su Root方式:
- 适用于用户没有sudo权限但知道root密码的场景
- 系统会先用普通用户登录,然后使用
su root命令切换到root用户 - 执行命令时在root环境下运行,拥有完整的管理员权限
- 自动处理su密码输入和输出过滤
- 支持复杂命令和管道操作
使用场景:
- 企业环境中禁止root直接SSH登录
- 普通用户没有sudo权限但可以su到root
- 需要执行系统级管理命令的场景
SSH批量命令执行工具