xxssh

友好的 SSH 客户端 - 多服务器管理 / 全功能终端 / 自动化 CLI / AI Agent

📂 开发工具#SSH#终端#远程连接#跨平台#开发工具📅 2026-8-8

📝 产品介绍

0.5.6 修复 / GUI 0.10.0 新增:隧道管理界面

  • CLI 修复:SOCKS5(-D)对协议垃圾输入不再误发应答;方法协商拒绝后不再连发两个应答
  • GUI 0.10.0(隧道管理):

- 侧栏 ⛓「快速隧道」:免编辑服务器档案临时发起隧道(支持临时 user@host),可"仅本次"或保存到服务器

- 隧道标签页升级为管理面板:每条转发实时显示连接数与上下行流量,可单条移除(-R 即时注销远端监听)

- 终端会话:标签页标题显示 [T n] 微标,右键「隧道...」可随时查看/添加/移除当前会话的转发

- 修复:终端会话断开/关标签后隧道监听端口不释放;-R 随机端口时移除不生效

0.5.5 新增:端口转发/隧道(免终端)

  • -D [bind:]port 本地 SOCKS5 代理:目标由 SSH 服务器解析(socks5h 语义),可重复
  • -L [bind:]port:host:rport 本地隧道:本地端口 → 经服务器到达内网目标,可重复
  • -R [bind:]port:host:rport 远程隧道:服务器监听端口 → 回连本机目标,可重复
  • -N 免终端模式:只保持隧道不开 shell,无需 TTY、可脚本化,建立失败退出码 1,Ctrl+C 退出
  • profile tunnels 配置:服务器条目可保存隧道列表(D:1080 / L:8080:db:5432 / R:80:localhost:3000),该服务器每次连接(CLI/TUI/GUI)自动拉起
  • 隧道与终端共存:-L 不带 -N 时终端和隧道同会话并行
  • TUI/GUI 同步:TUI 服务器编辑新增「隧道」字段(逗号分隔);GUI 见 xxsshg 0.9.0
  • 深度文档:--help tunnel;任一隧道建立失败则整个连接失败(不会起一半)

0.5.4 新增:sync 目录同步安全加固

  • 方向感知源根校验:pull 要求远端源目录存在、push 要求本地源目录存在(rsync 规则)——修复 0.5.2/0.5.3 中远端根路径打错会被当成空目录、pull --delete 可静默删光本地文件且 exit 0 的问题
  • 空源 --delete 熔断:源目录为空(或被 include/exclude 全部过滤)时拒绝执行删除并提示加 --force,--dry-run 始终可用
  • 参数写反提示:sync 参数顺序固定 <local> <remote>(与方向无关,不同于 put/get),写反时给出明确提示
  • 诊断面:每次 sync 输出两端根目录统计(文件/目录数)与空树警告,--delete 前打印计划删除计数,--json 新增 warnings,dry-run 汇总带(预演)标记
  • ls 输出回显路径:打错路径回空列表不再无提示

0.5.2 新增:单服务器共享与免导入连接

  • xxssh export <名称> 单服务器导出:把一台服务器导出为独立 JSON 文件(<名称>.xxssh.json),与 servers.json 列表完全分离,直接发给同事/搭档即可
  • xxssh --file bt.xxssh.json 指定文件连接:对方无需任何导入/保存,指定文件就能连(交互会话、--run、文件操作、put/get 全部支持)
  • 安全控制:默认包含 TXDEF 加密的密码;--no-secret 剔除密码/口令(对方连接时提示输入);误把 servers.json 列表当单服务器文件传给 --file 会被明确拒绝
xxssh export bt                        # -> bt.xxssh.json,发送给对方
xxssh --file bt.xxssh.json             # 对方直接连接(无需导入)
xxssh --file bt.xxssh.json --run "uptime"
xxssh export bt --no-secret            # 不含密码,对方连接时输入

xxssh

一个用 Rust 编写的 SSH 客户端,两种形态覆盖全部场景:交互式 TUI(多服务器管理 + 全功能终端)与面向脚本和 AI Agent 的完整命令行(0.5.0 全新)。服务器信息一次保存,所有命令直接按名称调用,自动化从此不必重复输入主机地址和密码。

0.5.1 新增(来自真实项目反馈)

  • --run-bg 分离执行:远端启动服务/后台进程不再挂起会话(自动 nohup + 输入输出重定向),stdout 直接回显远端 PID,配合 --bg-log <文件> 落日志;可与 --run 交错编排(先起服务再健康检查)
  • --run-json 结构化报告:命令输出不再流式打印,而是输出 {cmd, rc, out, err, pid, timed_out} JSON 数组;超时也保留部分结果
  • 无终端保护:CI/管道中误用交互模式时给出明确指引(exit 2),不再表现异常
xxssh --profile prod --run-bg "./char -server -dir=/srv/app" --bg-log /srv/app.log   # 回显 PID,立即返回
xxssh --profile prod --run "ps -p <PID>"                                             # 存活确认
xxssh --profile prod --run "uname -a" --run-json | jq -r '.results[0].out'           # 结构化输出

0.5.0 新增:命令行自动化与 AI Agent 完整支持

远程命令执行

xxssh --run "ls -al" --profile bt          # 按名使用已存服务器
xxssh --run "cd /app && make" --profile bt # 单命令内可任意组合
xxssh --runfile deploy.txt --profile bt    # 逐行执行文件中的命令
xxssh --run "sleep 99" --cmd-timeout 5 --profile bt   # 超时保护(退出码 124)
  • 退出码透传(脚本 / Agent 可直接判断)、stdout 与 stderr 分离、--timeout 连接超时

13 个结构化文件操作(加 --json 输出机器可读结果)

xxssh --profile bt ls /var/log -r --json  # 递归列表 -> [{path,type,size,mtime},...]
xxssh --profile bt stat /etc/hosts        # 类型/大小/权限/时间/属主
xxssh --profile bt exists /opt/app/app    # 存在性检查(退出码 0/1 可直接 && 判断)
xxssh --profile bt mkdir /opt/app/conf    # mkdir -p 语义
xxssh --profile bt touch /opt/app/f.ini   # 已存在文件绝不截断
xxssh --profile bt cp /src /dst -r        # 远端复制
xxssh --profile bt mv /a /b               # 移动 / rename 改名
xxssh --profile bt rm /old -r             # 删除(目录必须 -r)
xxssh --profile bt chmod 644 /opt/app.conf
xxssh --profile bt ln /releases/r2 /current   # 符号链接(部署切换)
xxssh --profile bt du /var/log            # 目录树统计
xxssh --profile bt df /                   # 磁盘空间

文件传输增强

xxssh put app.tar.gz bt:/opt/app.tar.gz --atomic  # 原子上传(临时名+改名+校验)
xxssh --profile bt get /etc/nginx/nginx.conf ./   # 下载
  • 上传 / 下载自动保留修改时间、scp 式目录语义、覆盖确认策略

目录同步 sync(增量、双向、安全)

xxssh --profile prod sync ./site /var/www/site --exclude ".git/**" --delete
xxssh --profile prod sync ./site /var/www/site --dry-run      # 先预演
xxssh --profile prod sync /var/data ./backup -d pull          # 备份拉取
xxssh --profile dev sync ./notes /srv/notes -d both --conflict newer
  • 增量规则:大小相同且 mtime ±1 秒内跳过;--delete 永不触碰被排除 / 非受管文件
  • 冲突策略 fail / newer / local / remote;rsync 风格 include/exclude 通配

AI Agent 专项设计

  • --password / --passphrase 命令行直传,配合 HEX_ 十六进制编码彻底规避各种 shell 的引号 / 转义 / 乱码问题(密码、命令、路径均可用)
  • 多级帮助系统:--help agents 快速上手、--help run|files|transfer|sync|security|shells|json 深度文档、--help all 一次性完整输出(语法 / 参数 / 退出码 / JSON schema / 错误含义 / 全组合示例)
  • 退出码契约:0 成功 / 1 失败 / 2 用法错误 / 124 超时;stdout 只输出数据(JSON / 命令输出),状态信息走 stderr
  • --known-hosts 严格主机指纹校验 / --known-hosts-add 首次信任(TOFU),防中间人

Shell 兼容提示:以上示例在 PowerShell / cmd 下原样可用。Git Bash (MSYS) 会把以 / 开头的参数改写成本地 Windows 路径(加引号也无法避免),请改用双斜杠写法 xxssh --profile bt ls //var/log,或在命令前加 MSYS_NO_PATHCONV=1;路径也支持 HEX_ 十六进制编码。详见 xxssh --help shells。

TUI 交互模式(原有全部特性)

  • 多服务器管理:新建 / 编辑 / 保存 / 删除(JSON 持久化,密码 TXDEF 加密落盘)
  • 全功能终端:PTY shell,ANSI 颜色与控制序列完整透传(vim / top / htop 正常)
  • 客户端保活:每 20s 心跳、3 次无响应才判死 -- 跨过 NAT / 防火墙空闲超时
  • 窗口尺寸同步、~. 强制断开、密码 / 公钥认证(含加密私钥、keyboard-interactive 回退)
  • SFTP 双栏浏览器:TUI 中按 F 本地 / 远程可视化浏览与传输
  • SOCKS5 代理:服务器单独设置 > 命令行 -x > 全局开关
  • 自更新:xxssh --update 一键升级,带 sha256 校验

Windows GUI 版(xxsshg)

偏好图形界面?xxsshg 提供多标签 GUI 终端、本地 CMD/PowerShell、服务器管理表单,与 xxssh 完全共用 ~/.xxssh 配置——在本卡片“Windows GUI”平台下载,独立版本号(当前 0.8.7)。

一键安装

# Linux / macOS
curl -fsSL https://magicdo.top/install/xxssh.sh | bash

# Windows (PowerShell)
irm https://magicdo.top/install/xxssh.ps1 | iex

快速开始

xxssh                                  # 启动 TUI 服务器管理界面
xxssh my-server                        # 交互式连接已存服务器
xxssh root@1.2.3.4 -p 2222 -i ~/.ssh/id_rsa   # 直连(不保存)
xxssh --run "uptime" --profile web     # 自动化:一条命令拿结果
xxssh --help agents                    # AI Agent 专用上手文档

TUI 按键:N 新建 / E 编辑 / Enter 连接 / D 删除 / S 设置 / F 传输 / Q 退出

配置文件

| 平台 | 路径 |

|------|------|

| Windows | C:\Users\<user>\.xxssh\servers.json |

| Linux / macOS | ~/.xxssh/servers.json |

环境变量 XXSSH_CONFIG 可覆盖路径;Unix 下权限 0600,密码加密存储。

跨平台二进制

| 平台 | 文件 |

|------|------|

| Windows x64 | xxssh.exe(静态 CRT,无外部 DLL) |

| Linux x64 | xxssh(musl 全静态,直接运行) |

| Linux ARM64 | xxssh(musl 全静态,aarch64 服务器/树莓派直接运行) |

| macOS | xxssh-universal(Intel + Apple Silicon) |

📦 下载

Windows
v0.5.6
约 9.07 MB
⚙ x64📋 Windows 10+
立即下载
Linux x64
v0.5.6
约 10.97 MB
⚙ amd64📋 Ubuntu 20.04+
立即下载
Linux ARM64
v0.5.6
约 7.38 MB
⚙ arm64📋 Ubuntu 20.04+ (aarch64)
立即下载
macOS
v0.5.6
约 18.95 MB
⚙ universal📋 macOS 12+
立即下载
Windows GUI
v0.10.8
约 18.21 MB
⚙ x64
立即下载

⚡ 一键安装

🪟 WindowsWindows 一键安装
irm https://magicdo.top/install/xxssh.ps1 | iex
🐧 LinuxLinux 一键安装
curl -fsSL https://magicdo.top/install/xxssh.sh | bash
🍎 macOSmacOS 一键安装
curl -fsSL https://magicdo.top/install/xxssh.sh | bash