# ssh_session_manager **Repository Path**: jaifire/ssh_session_manager ## Basic Information - **Project Name**: ssh_session_manager - **Description**: ssh会话管理器 终端工具 Windows Terminal、Alacritty - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-04 - **Last Updated**: 2026-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSH Session Manager for Windows Terminal 轻量级 Windows Terminal SSH 会话管理器,支持密码自动登录、会话分组管理。 ## ✨ 特性 | 功能 | 描述 | |---|---| | 🖥️ **Windows Terminal 原生集成** | 复用现有 WT 窗口,在新标签页中打开连接,不启动新程序 | | 🔑 **密码自动输入** | 通过 UI 自动化检测密码提示符,自动输入密码,无需手动操作 | | 📂 **会话分组管理** | 树状结构组织会话,支持按环境/项目分组,管理更清晰 | | 🏷️ **自动标签重命名** | 连接成功后自动将标签重命名为会话名称,方便区分 | | 🔒 **密码加密存储** | 使用 XOR + Base64 加密保存密码,不明文存储 | | ⚡ **轻量高效** | 纯 Python + Tkinter,启动快,资源占用小 | | 🎯 **图形化界面** | 可视化增删改查,无需编辑 JSON 配置 | ## ❓ 为什么不用 Windows Terminal 原生配置? Windows Terminal 虽然支持通过 `profiles.json` 配置 SSH 会话,但存在以下问题: | 功能 | WT 原生配置 | 本工具 | |---|---|---| | 密码自动输入 | ❌ 手动输入 | ✅ 自动输入 | | 图形化管理 | ❌ 编辑 JSON 文件 | ✅ 可视化操作 | | 会话分组 | ❌ 平铺显示 | ✅ 树状分组 | | 标签自动命名 | ❌ 手动修改 | ✅ 自动重命名 | **最核心的差异**:WT 作为系统级终端,出于安全考虑永远不会内置密码保存功能。而本工具通过 UI 自动化实现了这一刚需功能。 ## 🚀 快速开始 ### 环境要求 - Windows 10/11 - Windows Terminal(已安装) - Python 3.8+ ### 安装 ```bash # 克隆项目 git clone <仓库地址> cd ssh-session-manager # 安装依赖 pip install -r requirements.txt # 运行 python main.py ``` ### 使用说明 1. **添加会话** - 点击"添加"按钮,输入服务器信息 2. **分组管理** - 支持创建多个分组(如生产环境、测试环境) 3. **一键连接** - 双击会话或选中后点击"连接"按钮 4. **自动登录** - 程序会自动激活 Windows Terminal,新开标签页,输入密码并登录 ## 📸 功能截图 ![SSH 会话管理器主界面](img.png) - **左侧**:会话树状列表,支持分组管理,可展开/折叠分组 - **右侧**:选中会话的详细信息展示(主机、端口、用户名等) - **顶部**:快捷操作按钮(新建会话、新建分组) ## 🏗️ 技术架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ UI Layer (Tkinter) │ │ RootComponent (主窗口) ── SessionDialog (会话对话框) │ └───────────────────────────────┬─────────────────────────────┘ │ ┌───────────────────────────────▼─────────────────────────────┐ │ Service Layer │ │ SessionService (会话管理 + 持久化) ── ConnectionService │ └───────────────────────────────┬─────────────────────────────┘ │ ┌───────────────────────────────▼─────────────────────────────┐ │ Automation Layer (UIAutomation) │ │ WTAuto (WT窗口管理) ── Core (UIAutomation 底层操作) │ └─────────────────────────────────────────────────────────────┘ ``` ### 核心技术点 - **UIAutomation** - Windows UI 自动化框架,用于检测窗口和输入密码 - **XOR + Base64** - 密码对称加密,避免明文存储 - **Tkinter** - Python 内置 GUI,无需额外依赖,启动快 ## 📁 项目结构 ``` . ├── main.py # 程序入口 ├── requirements.txt # 依赖列表 ├── ssh_sessions.json # 会话数据(自动生成) ├── src/ │ ├── __init__.py │ ├── utils/ │ │ ├── __init__.py │ │ └── crypto.py # 加密工具类 │ ├── services/ │ │ ├── __init__.py │ │ ├── SessionService.py # 会话管理服务 │ │ └── ConnectionService.py # 连接服务 │ ├── automation/ │ │ ├── __init__.py │ │ ├── core.py # UIAutomation 核心 │ │ └── WTAuto.py # Windows Terminal 自动化 │ └── ui/ │ ├── __init__.py │ ├── tk_xml_render.py # XML 布局渲染器 │ └── components/ │ ├── root/ │ │ ├── RootComponent.py │ │ └── layout.xml │ └── session_dialog/ │ ├── SessionDialogComponent.py │ └── layout.xml ``` ## 🤔 常见问题 ### Q: 为什么不使用密钥认证? A: 对于很多企业环境、临时服务器、或者没有权限配置密钥的场景,密码登录是唯一的选择。本工具就是为了解决这些场景的痛点。 ### Q: UIAutomation 会不会失效? A: 有可能。如果 Windows Terminal 更新导致 UI 结构变化,可能需要调整检测逻辑。但这是实现自动登录的唯一可行方式。 ### Q: 密码安全吗? A: 密码使用 XOR + Base64 加密存储在本地 JSON 文件中,不会明文存储。对于个人使用足够安全,但建议不要在共享电脑上保存敏感密码。 ### Q: 支持其他终端吗? A: 目前专注于 Windows Terminal。代码架构上支持扩展其他终端(MobaXterm、Tabby 等),欢迎贡献代码。 ## 🎯 适合人群 - ✅ 已经习惯使用 Windows Terminal 的开发者 - ✅ 需要管理 5+ 台 SSH 服务器的运维人员 - ✅ 不想安装重型终端工具(MobaXterm/FinalShell) - ✅ 厌倦了每次都手动输入 ssh 命令和密码 ## 📝 开发计划 - [ ] 批量导入/导出会话 - [ ] 支持 SSH 密钥认证 - [ ] 快捷方式(快速连接常用服务器) - [ ] 批量执行命令 - [ ] 终端选择扩展(支持 MobaXterm、Tabby 等) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License --- **如果你也是 Windows Terminal 用户,厌倦了手动输入密码,不妨试试这个工具!** 🚀