开源一个基于 Rust 和 egui 开发的跨平台 SSH 客户端应用ssh-client

SSH Client

一个基于 Rust 和 egui 开发的跨平台 SSH 客户端应用。

项目开源网址

程序界面

功能特性

  • 多会话管理:支持同时打开多个 SSH 会话标签页
  • 终端模拟:完整的 VT100/ANSI 终端模拟,支持256色
  • SFTP 文件传输:支持文件上传、下载、目录浏览
  • 内置编辑器:支持语法高亮的文本编辑器
  • 端口转发:支持本地、远程和 SOCKS5 代理端口转发
  • 主密码保护:支持使用主密码加密存储服务器凭据
  • sudo 提权:支持通过 sudo 执行特权操作

支持平台

  • Windows
  • Linux
  • ARM64 (如 Raspberry Pi)

构建依赖

  • Rust 1.70+
  • Cargo

编译构建

Linux

bash 复制代码
cargo build --release

Windows

bash 复制代码
cargo build --release --target x86_64-pc-windows-gnu

ARM64 Linux

bash 复制代码
./build_arm64.sh

配置说明

配置文件默认为 servers.json,可通配命令行参数指定:

复制代码
ssh-client --config /path/to/config.json

服务器配置格式

json 复制代码
{
  "servers": [
    {
      "name": "服务器名称",
      "host": "192.168.1.1",
      "port": 22,
      "user": "username",
      "password": "password",
      "key": "/path/to/private/key"
    }
  ]
}

使用说明

基本操作

  1. 连接服务器:点击顶部工具栏的"+"按钮添加新服务器
  2. 文件传输:连接后右侧面板显示 SFTP 文件浏览器
  3. 端口转发:通过"转发"菜单配置端口转发规则

快捷键

  • Ctrl+Shift+T:新建标签页
  • Ctrl+W:关闭当前标签页
  • Ctrl+Tab:切换标签页

项目结构

复制代码
src/
├── main.rs       # 程序入口
├── app.rs        # 主应用逻辑和 UI
├── ssh.rs        # SSH 连接和会话管理
├── term.rs       # 终端模拟器
├── termwin.rs    # 终端渲染
├── editor.rs     # 内置编辑器
├── config.rs     # 配置管理
├── crypto.rs     # 加密和凭据保护
├── portfw.rs     # 端口转发
└── worker.rs     # 后台任务处理

许可证

MIT License