# ssh-session-generator **Repository Path**: lldhsds/ssh-session-generator ## Basic Information - **Project Name**: ssh-session-generator - **Description**: 批量生成XShell、SecureCRT、Mobaxterm等SSH客户端软件的SSH会话 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-14 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSH客户端会话生成工具 ## 项目介绍 SSH客户端会话生成工具是一个基于Python开发的实用工具,用于批量生成常见SSH客户端(MobaXterm、SecureCRT、XShell)的会话配置文件。通过简单的Excel表格或CSV文件定义服务器信息,本工具可以自动生成相应的会话文件,极大地提高效率。 ## 功能特点 当前工具支持的功能如下: - 支持多种SSH客户端: - MobaXterm 会话文件 - SecureCRT 会话文件 - XShell 会话文件 - 双模式操作界面: - 直观友好的图形用户界面(GUI) - 功能强大的命令行界面(CLI) - 数据源支持: - Excel文件(.xlsx, .xls) - CSV文件(.csv) - 分类组织会话文件: - 根据服务器角色自动分类会话文件 - 模板管理功能: - 下载预设模板 - 导入导出模板 - 密码加密功能: - SecureCRT 密码自动加密--待实现; - XShell 密码自动加密--待实现; - MobaXterm 密码自动加密--待实现; ## 系统要求 - Python 3.6 或更高版本 - 支持的操作系统: - Windows 7/10/11 - 依赖的Python库: - pandas - tkinter (GUI模式) - openpyxl (Excel文件处理) - pycryptodome (密码加密功能) ## 安装方法 ### 从源代码安装 1. 克隆或下载本仓库 ```bash git clone https://gitee.com/lldhsds/ssh-session-generator.git cd ssh-session-generator ``` 2. 安装依赖库 ```bash pip install -r requirements.txt ``` 3. 运行主程序 ```bash python main.py ``` ### 使用可执行文件(仅限Windows) 1. 从[发布页面](https://gitee.com/lldhsds/ssh-session-generator/releases)下载最新的.exe文件 2. 双击运行程序 ### 使用二进制文件(Linux) 1. 从[发布页面](https://gitee.com/lldhsds/ssh-session-generator/releases)下载最新的Linux二进制文件 2. 添加执行权限 ```bash chmod +x session_generator ``` 3. 运行程序 ```bash ./session_generator ``` ## 使用说明 ### 数据文件格式 工具需要一个Excel或CSV文件,包含以下字段: - `hostname`: 服务器主机名 - `ip`: 服务器IP地址 - `username`: 登录用户名 - `password`: 登录密码(可选) - `role`: 服务器角色(用于分类) 示例Excel文件格式: | hostname | IP | username | password | role | |------------|---------------|----------|----------|-------------| | server1 | 192.168.1.101 | root | 123456 | VM | | server2 | 192.168.1.102 | root | 123456 | VM | | server3 | 192.168.1.103 | root | 123456 | VM | ### 图形界面使用 1. 启动程序 ```bash python main.py ``` 2. 在界面上选择: - SSH客户端类型 - 数据文件(Excel/CSV) - 输出目录 3. 点击"生成会话文件"按钮 4. 会话文件将按照服务器角色分类保存到指定目录 ### 命令行使用 基本用法: ```bash python main.py --client --generate --data --template --output ``` 参数说明: - `--client`, `-c`: SSH客户端类型 (MobaXterm, SecureCRT, Xshell) - `--generate`, `-g`: 生成会话文件 - `--data`: 数据文件路径 (Excel/CSV) - `--sheet`: Excel表格名 (默认: Sheet1) - `--template`: 模板文件路径 - `--output`, `-o`: 输出目录 (默认: 当前目录) 示例: ```bash # 生成MobaXterm会话文件 python main.py --client MobaXterm --generate --machines ./machines_template.xlsx --template templates/mobaxterm.moba --output ./output # 生成SecureCRT会话文件 python main.py --client SecureCRT --generate --machines ./machines_template.xlsx --template templates/securecrt.ini ``` ## SSH客户端会话文件位置 ### MobaXterm 打开MobaXterm,右键`User sessions`, ![mobaxterm-session-import](./assets/mobaxterm-session-import.png) 选择工具生成的MobaXterm sessions文件: ![mobaxterm-session-file](./assets/mobaxterm-session-file.png) ### Xshell 不同Xshell版本会话文件位置稍微有差异,参考如下路径,将工具生成位于`sessions\xshell`下面的会话及文件夹,拷贝到如下路径: |Product |Session File Location | |--------|:--------------------------------------------------------------| |XShell 5|`%userprofile%\Documents\NetSarang\Xshell\Sessions` | |XFtp 5 |`%userprofile%\Documents\NetSarang\Xftp\Sessions` | |XShell 6|`%userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions` | |XFtp 6 |`%userprofile%\Documents\NetSarang Computer\6\Xftp\Sessions` | |XShell 7|`%userprofile%\Documents\NetSarang Computer\7\Xshell\Sessions` | |XFtp 7 |`%userprofile%\Documents\NetSarang Computer\7\Xftp\Sessions` | 如果是Xshell绿色版软件,会话文件一般位于程序所在文件夹。 ### SecureCRT 会话文件一般位于程序`SecureCRSecureFXPortable\Data\Settings\VanDyke\Config\Sessions`目录或者安装路径下的类似文件路径。 ## 开发和维护 ### 项目结构 ```bash session-generator/ ├── main.py # 主程序入口 ├── cli.py # 命令行界面 ├── gui.py # 图形用户界面 ├── core/ │ ├── __init__.py │ ├── generator.py # 会话生成核心逻辑 │ ├── mobaxterm.py # MobaXterm相关功能 │ ├── securecrt.py # SecureCRT相关功能 │ ├── xshell.py # XShell相关功能 │ └── data_loader.py # 数据加载与处理 ├── utils/ │ ├── __init__.py │ ├── config.py # 配置管理 │ ├── template.py # 模板管理 │ ├── file_utils.py # 文件操作工具 │ └── password_encryptor.py # 密码加密工具 ├── templates/ # 存储会话模板 │ ├── mobaxterm.moba │ ├── securecrt.ini │ └── xshell.xsh └── resources/ # 其他资源文件 ``` ### 扩展指南 如需添加对新SSH客户端的支持: 1. 在`core/`目录下创建新的生成器类,继承`SessionGenerator`基类 2. 实现必要的方法,特别是`generate_session()` 3. 在`cli.py`和`gui.py`中添加对新客户端的支持 4. 在`utils/template.py`中添加相应的模板管理功能 ## 常见问题 **Q: 为什么生成的会话文件无法正常登录服务器?** A: 请检查excel文件及生成会话文件中,会话的ip和用户名等信息是否正确。 **Q: 支持哪些版本的SSH客户端?** A: 目前支持MobaXterm、SecureCRT和XShell的主流版本。对于较旧或较新的版本,可能需要调整模板文件。 **Q: 如何使用密码加密功能?** A: 当前版本暂不支持,导入会话文件后,手动输入密码刷新密码信息。 **Q: 工具生成的机器列表文件无法编辑,提示工作表处于受保护状态** ![trouble1](./assets/trouble1.png) A: 通过excel设置取消工作表保护(开始--信息),并保存excel文件 ![solution1](./assets/solution1.png) ## 许可证 本项目采用MIT许可证。详情请查看[LICENSE](LICENSE)文件。 ## 作者 项目由lldhsds创建并维护。 ## 贡献 欢迎提交问题报告、功能请求和代码贡献。请先fork本仓库并创建`pull request`。