Back to Discover

iterminal

connector

iTophua

MCP Server for iTerminal SSH Connection Manager - Control SSH servers through Claude.

View on GitHub
0 starsSynced Aug 17, 2026

Install to Claude Code

/plugin marketplace add iTophua/iterminal

README

iTerminal - SSH 连接管理器

一款基于 Tauri 2 + React 构建的现代化 SSH 连接管理工具,专注于提供高效的 SSH 连接管理和终端操作体验。

项目介绍

背景

iTerminal 是一款类似于 XTerminal 的 SSH 连接管理工具,旨在帮助开发者和运维人员更便捷地管理多台服务器。

技术栈

技术版本说明
Tauri2.x跨平台桌面应用框架
React19.x前端 UI 框架
TypeScript5.x类型安全的 JavaScript
Vite7.x下一代前端构建工具
Ant Design6.x企业级 UI 组件库
xterm.js6.x终端模拟器
Zustand5.x轻量级状态管理
Rust1.75+后端 SSH 实现
russh0.50Rust SSH 客户端库
russh-sftp2.1Rust SFTP 客户端库

核心特性

  • 🚀 轻量高效 - 基于 Tauri,内存占用低,启动速度快
  • 🔐 安全可靠 - AES-256-GCM 加密存储连接信息,支持 SSH 密钥认证,自动密码迁移
  • 🖥️ 多标签管理 - 支持同时打开多个 SSH 会话
  • 📐 终端分屏 - 支持水平/垂直分屏,嵌套分屏,可拖拽调整大小
  • 🔍 终端搜索 - 支持终端内容全文搜索
  • ⌨️ 快捷键系统 - 丰富的快捷键支持,可自定义
  • 📁 文件管理 - SFTP 文件浏览、上传下载、拖拽上传、文件搜索、压缩解压、文件预览/编辑(CodeMirror 6),面板跟随终端目录,权限不足时支持 sudo 提权上传
  • 📊 系统监控 - 实时 CPU、内存、磁盘监控面板,进程管理
  • 🤖 MCP 支持 - 内置 MCP 服务器(Token 鉴权 + SSE 传输),AI 执行的操作实时同步显示到终端
  • 🐳 Docker 管理 - 容器/镜像/日志/容器终端
  • AI 助手 - AI 对话(感知终端上下文)+ 智能体 Agent 自主诊断服务器
  • 🪟 多窗口支持 - 拖拽连接到边缘创建新窗口,完整终端功能复用
  • 📋 中文支持 - 完整的中文界面和右键菜单
  • 🌍 跨平台 - 支持 Windows、macOS、Linux

目标用户

  • 开发者
  • 系统运维工程师
  • DevOps 工程师
  • 需要管理多台服务器的技术人员

应用图片

连接管理 终端分屏 文件管理 系统监控

安装与打包

环境要求

通用要求

  • Node.js >= 18.x
  • Rust >= 1.75
  • npm 或 pnpm

Windows

macOS

  • Xcode Command Line Tools: xcode-select --install

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev

开发环境搭建

# 1. 克隆项目
git clone <repository-url>
cd iTerminal

# 2. 安装依赖
npm install

# 3. 启动开发模式
npm run tauri dev

生产环境打包

# 构建并打包应用
npm run tauri build

打包输出

构建完成后,安装包位于 src-tauri/target/release/bundle/ 目录:

平台输出格式文件位置
Windows.msi / .exebundle/msi/ bundle/nsis/
macOS.dmg / .appbundle/dmg/ bundle/macos/
Linux.deb / .AppImagebundle/deb/ bundle/appimage/

功能介绍

1. 连接管理

1.1 连接列表

  • 卡片式展示所有 SSH 连接
  • 分组管理(自定义分组)
  • 标签分类
  • 实时显示连接状态(在线/离线)
  • 支持按名称、IP、标签搜索筛选
  • 连接排序、批量管理

1.2 连接操作

操作说明
新建连接创建新的 SSH 连接配置
编辑连接修改现有连接信息
删除连接删除单个连接
复制连接快速复制现有配置创建新连接
连接测试测试 SSH 连通性和认证
快速连接一键打开 SSH 终端
导入/导出JSON 格式批量导入导出连接
复制 IP一键复制服务器 IP 地址

1.3 连接状态

  • 在线 - 端口可达(绿色指示灯)
  • 离线 - 端口不可达(灰色指示灯)
  • 连接中 - 正在建立连接(蓝色指示灯)

💡 启动后自动检测所有连接状态,定期刷新。

1.4 连接配置

基本配置:

  • 连接名称
  • 分组
  • 标签
  • 主机名/IP 地址
  • 端口(默认 22)
  • 用户名

认证方式:

  • 密码认证
  • SSH 密钥认证(支持 OpenSSH 和 PEM 格式)

2. SSH 终端

2.1 多标签管理

  • 支持同时打开多个 SSH 会话
  • 连接级别标签页(每个连接可创建多个会话)
  • 标签页显示服务器名称/IP
  • 会话状态标识

2.2 终端分屏

  • 支持水平/垂直分屏
  • 可拖拽调整分屏大小
  • 每个分屏独立会话管理
  • 拖拽会话标签创建新分屏

2.3 终端功能

功能快捷键/操作
终端模拟完整的 xterm.js 终端
彩色输出支持 ANSI 颜色
复制工具栏按钮 / 右键菜单 / CmdOrCtrl+Shift+C
粘贴右键菜单 / CmdOrCtrl+Shift+V
全选右键菜单
搜索工具栏搜索按钮 / CmdOrCtrl+F
全屏工具栏全屏按钮
分屏CmdOrCtrl+D 水平 / CmdOrCtrl+Shift+D 垂直
新建会话CmdOrCtrl+T
关闭会话CmdOrCtrl+W

2.4 工具栏

悬浮工具栏提供快捷操作:

  • 📋 复制 - 复制选中的终端内容
  • 🔍 搜索 - 打开搜索栏,搜索终端内容
  • 🖥️ 全屏 - 窗口最大化并收起侧边栏
  • 📊 系统监控 - 打开实时监控面板
  • 📁 文件管理 - 打开 SFTP 文件管理面板
  • 收起 - 收起工具栏为小球形态

2.5 多窗口支持

  • 拖拽连接标签到窗口边缘创建新窗口
  • 新窗口保留完整终端功能
  • 终端会话自动恢复到新窗口
  • 窗口位置自动记忆

3. 文件管理

3.1 文件浏览

  • SFTP 协议远程文件浏览
  • 树形/列表双视图切换
  • 路径输入框快速跳转
  • 显示/隐藏隐藏文件
  • 文件大小显示
  • 拖拽上传到指定目录

3.2 文件操作

操作说明
新建文件创建空文件
新建文件夹创建目录
重命名修改文件/文件夹名称
删除删除文件或目录
修改权限chmod 权限设置
压缩远程 tar.gz 压缩
解压支持 tar.gz/zip/gz 等格式
文件搜索远程文件搜索
文件预览文本文件预览
文件编辑在线编辑远程文件
复制文件名复制选中文件名
复制路径复制完整路径

3.3 文件传输

  • 上传文件 - 支持多文件选择上传
  • 上传文件夹 - 整个文件夹上传
  • 拖拽上传 - 直接拖拽文件到面板上传
  • 下载文件 - 选择保存位置下载
  • 传输进度 - 实时显示传输进度
  • 暂停/恢复 - 支持传输暂停和恢复

4. 系统监控

4.1 监控面板

实时显示服务器状态,自动刷新:

系统信息:

  • 主机名
  • 操作系统
  • 内核版本
  • 运行时间

CPU 监控:

  • 总体使用率
  • 各核心使用率(可视化)
  • 核心数量
  • 负载均值

内存监控:

  • 内存使用率(可视化)
  • 已用/总量/可用
  • Swap 使用情况

磁盘监控:

  • 各挂载点使用率
  • 已用/总量/可用空间
  • 使用率百分比

进程管理:

  • 进程列表(按内存排序)
  • 进程终止

4.2 状态指示

  • 🟢 绿色 - 使用率 < 70%
  • 🟡 黄色 - 使用率 70% - 90%
  • 🔴 红色 - 使用率 > 90%

5. MCP 服务器

内置 MCP (Model Context Protocol) 服务器,支持 AI 助手集成:

  • 通过 HTTP API 控制 SSH 连接
  • 支持命令执行、文件操作、系统监控
  • 可与 Claude 等 AI 助手集成

项目结构

iTerminal/
├── src/                        # React 前端
│   ├── main.tsx                # 应用入口
│   ├── App.tsx                 # 路由 + 布局
│   ├── components/             # 公共组件
│   │   ├── Sidebar.tsx         # 侧边栏
│   │   ├── FileManagerPanel.tsx # 文件管理面板
│   │   ├── MonitorPanel.tsx    # 系统监控面板
│   │   ├── SettingsPanel.tsx   # 设置面板
│   │   └── fileManager/        # 文件管理子模块
│   ├── pages/                  # 页面组件
│   │   ├── Terminal.tsx        # 终端页面
│   │   ├── TerminalWindow.tsx  # 新窗口终端
│   │   ├── Connections.tsx     # 连接管理
│   │   └── Transfers.tsx       # 传输管理
│   ├── stores/                 # Zustand 状态管理
│   │   ├── terminalStore.ts    # 连接/会话状态
│   │   └── transferStore.ts    # 传输记录状态
│   ├── services/               # 服务层
│   │   ├── database.ts         # 数据库服务
│   │   └── sftp.ts             # SFTP 服务
│   ├── utils/                  # 工具函数
│   │   ├── paneUtils.ts        # 分屏工具
│   │   └── TerminalManager.ts  # 终端管理
│   └── styles/                 # 全局样式
│       └── global.css          # xterm.js 样式覆盖
├── src-tauri/                  # Rust 后端
│   ├── src/
│   │   ├── main.rs             # Tauri 入口
│   │   ├── lib.rs              # 模块声明
│   │   ├── db/                 # 数据库
│   │   │   ├── schema.sql      # 数据库结构
│   │   │   └── crypto.rs       # 加密模块
│   │   └── commands/           # Tauri 命令
│   │       ├── ssh.rs          # SSH 操作
│   │       ├── sftp.rs         # SFTP 文件传输
│   │       ├── db.rs           # 数据库操作
│   │       ├── api.rs          # HTTP API 服务器
│   │       └── window.rs       # 窗口管理
│   ├── Cargo.toml              # Rust 依赖
│   ├── tauri.conf.json         # Tauri 配置
│   └── capabilities/           # 权限配置
├── mcp/                        # MCP 服务器
│   └── src/index.ts            # MCP 工具定义
├── package.json                # npm 依赖
├── vite.config.ts              # Vite 配置
└── tsconfig.json               # TypeScript 配置

安全注意事项

风险项当前状态建议
密码存储AES-256-GCM 加密存储安全
主机密钥验证已跳过后续版本将支持 known_hosts
密钥认证已实现推荐使用密钥认证
会话超时无自动锁定手动断开不使用的连接

常见问题

Q: 无法连接服务器?

  1. 检查网络连通性
  2. 确认 SSH 服务已启动
  3. 验证用户名和密码/密钥
  4. 检查防火墙设置

Q: Windows 打包失败?

  1. 确保已安装 Visual Studio Build Tools
  2. 选择 "Desktop development with C++" 工作负载
  3. 安装 WebView2 Runtime

Q: macOS 提示无法打开?

  1. 系统偏好设置 → 安全性与隐私
  2. 点击「仍要打开」
  3. 或使用命令:xattr -cr iTerminal.app

Q: 终端显示乱码?

  1. 检查服务器 locale 设置
  2. 确保终端字体支持 UTF-8
  3. 尝试调整终端字体

开发计划

已完成功能

  • SSH 连接管理
  • 多会话终端
  • 终端搜索功能
  • SFTP 文件管理
  • 文件上传/下载
  • 拖拽上传
  • sudo 提权上传(权限不足时自动重试)
  • 系统监控面板
  • 远程文件压缩/解压
  • 密钥认证
  • 密码加密存储
  • 连接导入/导出
  • 断线自动重连
  • 快捷键系统
  • 分屏终端
  • 终端主题配置
  • 文件预览/编辑(CodeMirror 6)
  • 文件搜索
  • 传输暂停/恢复
  • MCP 服务器(Token 鉴权 + SSE 传输 + 日志体系)
  • 多窗口支持
  • Docker 管理(容器/镜像/日志/容器终端)
  • AI 助手(AI 对话 + 智能体 Agent)
  • 主题切换
  • 文件夹下载
  • 输入广播(多连接同时输入)
  • 命令片段库(Pro)
  • 端口转发(Pro)

计划功能

  • 断点续传
  • 进程管理增强
  • 多语言支持

贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

Rendered live from iTophua/iterminal's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-serveriterminal-mcp-server

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.