侠客软件 Xiake Labs
xssh 图标

xssh · AI 编程 / 运维

免费 MIT 开源 v0.3.1 国内高速下载

用 Claude Code 管理远程服务器的典型场景

更新于

装好 xssh 并为 agent 安装 skill 后(见 快速开始),你只需要用自然语言描述任务。下面是常见场景,以及 agent 在背后用到的 xssh 命令,方便你理解和审查它的操作。

排查线上故障

web1 上的接口返回 502,帮我查一下原因。

agent 通常会这样做:

xssh status web1                                  # CPU、内存、磁盘、端口、服务概况
xssh diag web1                                    # 自动诊断,给出发现和建议命令
xssh logs web1 --unit nginx --since 15m --priority err
xssh logs web1 --file /var/log/app/error.log --grep timeout --tail 100

输出是精简、无颜色码的纯文本,并带有真实退出码,agent 不会被大段日志淹没。

部署与发布

在 web1 的 /srv/app 拉取最新代码,安装依赖并重启服务。

xssh session open web1 --name w
xssh session run w -- 'cd /srv/app && git pull --ff-only'
xssh session run w -- 'npm ci'
xssh session run w -- 'sudo systemctl restart app'

session 会在多次调用之间保持 shell 状态,cd 之后的目录、激活的虚拟环境都还在。sudo 的密码自动从钥匙串代填,agent 看不到密码。

长时间任务

工具调用一般有超时限制,构建、数据迁移、备份这类任务容易被打断。xssh 的 job 在远端独立运行,断线或本机守护进程重启都不受影响:

xssh job start web1 --name build -- './build.sh --release'
xssh job wait <ID> --timeout 90s      # 每次最多等 90 秒,未完成返回 124
xssh job logs <ID>                    # 增量读取日志

修改配置文件

xssh file read web1 /etc/nginx/sites-enabled/app.conf
xssh file edit web1 /etc/nginx/sites-enabled/app.conf --sudo \
  --old 'proxy_read_timeout 30s;' --new 'proxy_read_timeout 120s;'
xssh exec web1 --sudo -- nginx -t

file edit 要求旧文本唯一匹配,写入是原子的,旧内容自动备份到远端 ~/.xssh/backups;如果文件在读取后被别人改过,会拒绝写入,避免覆盖他人修改。

上传、下载与同步文件

xssh cp ./dist web1:/srv/app/ --exclude '*.map'
xssh cp web1:/var/backups/db.dump ./
xssh cp db:/srv/db.dump staging:/tmp/          # 主机到主机

未变化的文件自动跳过,大文件支持断点续传,结束时返回变更清单和 sha256。

多台服务器批量执行

xssh exec web1,web2,web3 -- 'df -h /'
xssh exec @prod -- 'systemctl is-active app'   # 按标签并行

每台服务器的结果单独成块,并附带各自的退出码。

交互式程序与远程 agent

xssh 可以驱动 REPL、vim、top,甚至远程服务器上的 Claude Code:

xssh session run w -- claude
xssh session send w '修复测试失败' --enter --timeout 10m

xssh 会识别全屏界面和“忙碌”标志,只在界面稳定后返回当前屏幕。

安全边界

相关阅读:xssh 与 OpenSSH 的区别 · 下载 xssh