SuperAPI AI 工具集

remote-exec

部署与运维

查看项目

更新于 10-16 06:09

技能介绍

Remote SSH Execution Skill 用于通过 SSH 在远程服务器上执行命令和管理文件,并借助持久连接复用会话。

【用途】 当用户提到远程执行、SSH、远程服务器操作,使用 /remote-exec 命令,想在远程机器上运行命令,或操作远程服务器上的文件时,可激活该技能。

【主要能力】

  • 管理多个远程主机的 SSH 连接
  • 通过 SSH ControlMaster 在远程服务器上执行命令
  • 在远程系统上读写文件
  • 在不同远程环境(dev、staging、prod 等)之间切换

【核心命令】 技能提供包装脚本 remote-exec.sh,包含以下命令:

  • add <name> <ssh-address> [port] — 手动添加新的 SSH 主机(可选)
  • remove <name> — 移除主机配置
  • connect <name> — 建立持久 SSH 连接
  • disconnect [name] — 关闭 SSH 连接
  • switch <name> — 切换到其他主机
  • list — 显示所有已配置主机及连接状态
  • status — 显示当前活动连接
  • exec <command...> — 在当前活动的远程主机上执行命令

【使用方式】 初始设置: 技能首次激活时,检查用户是否已配置主机: .claude/skills/remote-exec/remote-exec.sh list 脚本会自动从 ~/.ssh/config 导入别名。如有需要,用户仍可手动添加: .claude/skills/remote-exec/remote-exec.sh add <name> user@hostname [port] 连接主机: .claude/skills/remote-exec/remote-exec.sh connect <name> 执行命令: 连接后,所有远程命令需用 exec 子命令包裹: .claude/skills/remote-exec/remote-exec.sh exec <command> 示例: .claude/skills/remote-exec/remote-exec.sh exec pwd .claude/skills/remote-exec/remote-exec.sh exec ls -la .claude/skills/remote-exec/remote-exec.sh exec bash /path/to/script.sh .claude/skills/remote-exec/remote-exec.sh exec "ps aux | grep nginx"

文件操作: 读取文件: .claude/skills/remote-exec/remote-exec.sh exec cat /path/to/file 写入小文件: .claude/skills/remote-exec/remote-exec.sh exec "echo 'content' > /path/to/file" 使用 heredoc 写入较大文件: .claude/skills/remote-exec/remote-exec.sh exec "cat > /path/to/file << 'EOF' file content here multiple lines EOF" 编辑文件(通过 exec 使用 sed 等工具): .claude/skills/remote-exec/remote-exec.sh exec "sed -i 's/old/new/g' /path/to/file"

切换主机: .claude/skills/remote-exec/remote-exec.sh switch prod .claude/skills/remote-exec/remote-exec.sh exec whoami

【行为准则】

  • 执行命令前始终检查连接状态
  • 在回复中明确区分本地操作与远程操作
  • 远程文件操作尽量使用绝对路径
  • 优雅处理错误——连接失败时引导用户重新连接
  • 告知用户命令正在哪台主机上执行
  • 正确引用复杂命令,避免 shell 解释问题

【示例工作流】 用户询问:“检查我 dev 服务器上的 nginx 日志”

  1. 检查状态:.claude/skills/remote-exec/remote-exec.sh status
  2. 若未连接则连接:.claude/skills/remote-exec/remote-exec.sh connect dev
  3. 执行命令:.claude/skills/remote-exec/remote-exec.sh exec "tail -n 50 /var/log/nginx/error.log"

【安全说明】

  • SSH 密钥应配置为免密码认证
  • 脚本使用 SSH ControlMaster 复用连接
  • socket 文件以受限权限(600)创建
  • 配置文件中不存储密码
  • 执行破坏性命令前始终确认目标主机

【限制】

  • 本地需安装 jq 以进行配置管理
  • 需要基于 SSH 密钥的认证(不支持密码提示)
  • 交互式命令(如 vim、top)无法通过 exec 工作
  • 大文件传输应直接使用 scp 或 rsync

【allowed-tools】 Bash(*) — 执行 SSH 命令和管理连接所必需