# 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**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-14 - **Last Updated**: 2025-03-19 ## 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) - 智能分类组织: - 根据服务器角色自动分类会话文件 - 模板管理功能: - 下载预设模板 - 创建自定义模板 - 导入导出模板 ## 系统要求 - Python 3.6 或更高版本 - 支持的操作系统: - Windows 7/10/11 - Linux (主流发行版) - 依赖的Python库: - pandas - tkinter (GUI模式) - openpyxl (Excel文件处理) ## 安装方法 ### 从源代码安装 1. 克隆或下载本仓库 ```bash git clone https://github.com/yourusername/ssh-session-generator.git cd ssh-session-generator ``` 2. 安装依赖库 ```bash pip install -r requirements.txt ``` 3. 运行主程序 ```bash python main.py ``` ### 使用可执行文件(仅限Windows) 1. 从[发布页面](https://github.com/yourusername/ssh-session-generator/releases)下载最新的.exe文件 2. 双击运行程序 ### 使用二进制文件(Linux) 1. 从[发布页面](https://github.com/yourusername/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) - 表格名称(如使用Excel) - 输出目录 - 模板文件 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 --data env.xlsx --template templates/mobaxterm.moba --output ./output # 生成SecureCRT会话文件 python main.py --client securecrt --generate --data env.xlsx --sheet Servers --template templates/securecrt.ini # 下载模板 python main.py --client xshell --download-template --output ./templates # 创建默认模板 python main.py --client mobaxterm --create-template ``` ## 模板文件 ### MobaXterm模板示例 ```bash [Bookmarks_Entry] SubRep= ImgNum=41 Ssh=1 Host=192.168.100.10 Password= User=root Name=hyperv-centos79 ``` ### SecureCRT模板示例 ```bash [SSH2] Host=192.168.100.10 Protocol=SSH2 Port=22 UserName=root Password= Color=1 LogonTimeout=30 ClosedTimeout=30 ``` ### XShell模板示例 ```bash [CONNECTION] Host=192.168.100.10 Protocol=SSH Port=22 UserName=root Password= AutoLogin=true ``` ## 配置文件 配置文件存储在用户目录下的`.session_generator`文件夹中: - Windows: `C:\Users\\.session_generator\config.json` - Linux: `/home//.session_generator/config.json` 您可以手动编辑此文件自定义默认设置,或通过程序界面修改配置。 ## 开发和维护 ### 项目结构 ```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 # 文件操作工具 ├── 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: 请检查数据文件中的用户名和密码是否正确,以及服务器是否可访问。 **Q: 如何自定义会话模板?** A: 您可以先使用SSH客户端创建一个会话,然后导出其配置文件作为模板,或修改程序提供的默认模板。 **Q: 支持哪些版本的SSH客户端?** A: 目前支持MobaXterm、SecureCRT和XShell的主流版本。对于较旧或较新的版本,可能需要调整模板文件。 **Q: 如何保护密码安全?** A: 建议在生产环境中不要在数据文件中存储明文密码,可以选择生成不含密码的会话配置,或实现自定义的密码加密方案。 ## 许可证 本项目采用MIT许可证。详情请查看[LICENSE](LICENSE)文件。 ## 作者 项目由xushuai创建并维护。 ## 贡献 欢迎提交问题报告、功能请求和代码贡献。请先fork本仓库并创建pull request。 --- 如有任何问题或建议,请提交issue或联系维护者。