OpenClaw 远程模式:给你的电脑做个 AI 分身

你有多台设备吗?工作机、云服务器、或者家里闲置的一台电脑?
我把闲置设备变成了工作机的「AI 分身」:
- 跨设备调用:工作机一行命令,远程机器执行
- 耗时任务分流:让分身跑长任务,工作机继续干活
- SSH 免登录:随时连上去修复、排错、查日志
现在一行命令,两台设备协同工作 👇
适用范围:本文以两台 Mac 同一局域网为例,但方案适用于任何 SSH 可达的设备(Linux 服务器、云主机、WireGuard/Tailscale 组网等)。
📌 划重点
| 项目 | 值 |
|---|---|
| 工作电脑 | 192.168.31.195,用户 dev |
| 远程主机 | 192.168.31.106,用户 botdev |
| 连接方式 | SSH 隧道 + OpenClaw Remote Mode |
| 本地端口 | 28789 → 远程 18789 |
最终效果:
openclaw agent -m "消息"→ 远程主机的 AI 执行ssh openclaw→ 免密登录,随时排错- Skill 封装 → AI 自动调用远程操作
🎯 使用场景
场景一:AI 分身
工作机专注开发,远程主机跑 AI 任务:
- 远程主机有 Claude Max 订阅
- 工作机调用远程 Agent,不占本地资源
- 耗时任务(搜索、写文章)让分身去跑
场景二:运维后门
SSH 免登录 = 随时能连上去:
- 查看远程主机状态
- 修复配置问题
- 重启服务
场景三:多机协作
打通调用链路后,可以扩展到多台机器(见 02-群控模式)。
🔧 配置流程
Step 1: 开启远程主机 SSH
在远程主机上:系统设置 → 通用 → 共享 → 打开「远程登录」
💡 局域网内开 SSH 是安全的,外网无法直接访问内网 IP。
Step 2: 配置 SSH 免密登录
在工作电脑上运行:
# 复制公钥到远程主机
ssh-copy-id botdev@192.168.31.106
# 验证免密登录
ssh botdev@192.168.31.106 "echo '✅ 免密登录成功' && hostname"
Step 3: 配置 SSH 隧道
创建 ~/.ssh/config:
# 远程主机 - OpenClaw Gateway
Host openclaw
HostName 192.168.31.106
User botdev
LocalForward 28789 127.0.0.1:18789
ServerAliveInterval 60
ServerAliveCountMax 3
💡 本地用 28789 端口,避免和本地 OpenClaw(18789)冲突。
Step 4: 获取远程 Gateway Token
ssh openclaw "source ~/.zshrc; cat ~/.openclaw/openclaw.json | jq '.gateway.auth.token'"
Step 5: 配置 OpenClaw Remote Mode
修改工作电脑的 ~/.openclaw/openclaw.json:
{
"gateway": {
"mode": "remote",
"remote": {
"url": "ws://127.0.0.1:28789",
"token": "your-gateway-token-here",
"sshTarget": "openclaw"
}
}
}
Step 6: 验证连接
# 启动 SSH 隧道
ssh -fN openclaw
# 检查状态
openclaw status
输出应显示远程主机信息:
{
"mode": "remote",
"url": "ws://127.0.0.1:28789",
"reachable": true,
"self": {
"host": "botdevdeMacBook-Air.local",
"ip": "192.168.31.106"
}
}
📋 最终配置清单
工作电脑 ~/.ssh/config
Host openclaw
HostName 192.168.31.106
User botdev
LocalForward 28789 127.0.0.1:18789
ServerAliveInterval 60
ServerAliveCountMax 3
工作电脑 ~/.openclaw/openclaw.json
{
"gateway": {
"mode": "remote",
"remote": {
"url": "ws://127.0.0.1:28789",
"token": "your-gateway-token-here",
"sshTarget": "openclaw"
}
}
}
🚀 日常使用
# 启动隧道(后台运行)
ssh -fN openclaw
# 调用远程 Agent
openclaw agent --agent main -m "帮我写一篇博客"
# 关闭隧道
pkill -f "ssh -fN openclaw"
🔌 进阶:封装成 Skill
配置完成后,我们把 SSH 远程操作封装成 Skill,让 AI 可以自动调用。
Skill 目录结构
ssh-remote-ops/
├── SKILL.md
└── scripts/
├── ssh-status.sh
├── ssh-exec.sh
└── tunnel-manager.sh
SKILL.md
---
name: ssh-remote-ops
description: |
SSH 远程主机操作技能。用于:
(1) 检查远程主机状态
(2) 在远程主机执行命令
(3) 管理 SSH 隧道
当用户说"检查远程主机"、"在远程执行"、"启动隧道"时使用此技能。
---
# SSH Remote Operations
## 可用脚本
### 检查远程主机状态
```bash
bash scripts/ssh-status.sh
在远程主机执行命令
bash scripts/ssh-exec.sh "命令"
管理 SSH 隧道
bash scripts/tunnel-manager.sh start|stop|status
### scripts/ssh-status.sh
```bash
#!/bin/bash
# 检查远程主机状态
SSH_HOST="openclaw"
echo "📡 检查远程主机连接..."
if ssh -o ConnectTimeout=5 $SSH_HOST "echo 'connected'" &>/dev/null; then
echo "✅ SSH 连接正常"
echo ""
echo "📊 远程主机信息:"
ssh $SSH_HOST "hostname && uptime"
echo ""
echo "🤖 OpenClaw 状态:"
ssh $SSH_HOST "source ~/.zshrc 2>/dev/null; openclaw status 2>/dev/null || echo '未安装 OpenClaw'"
else
echo "❌ SSH 连接失败"
exit 1
fi
scripts/ssh-exec.sh
#!/bin/bash
# 在远程主机执行命令
SSH_HOST="openclaw"
COMMAND="$*"
if [ -z "$COMMAND" ]; then
echo "用法: ssh-exec.sh <命令>"
exit 1
fi
echo "🚀 在远程主机执行: $COMMAND"
ssh $SSH_HOST "source ~/.zshrc 2>/dev/null; $COMMAND"
scripts/tunnel-manager.sh
#!/bin/bash
# SSH 隧道管理
SSH_HOST="openclaw"
LOCAL_PORT="28789"
case "$1" in
start)
if pgrep -f "ssh -fN $SSH_HOST" > /dev/null; then
echo "⚠️ 隧道已在运行"
else
ssh -fN $SSH_HOST
echo "✅ 隧道已启动 (本地端口: $LOCAL_PORT)"
fi
;;
stop)
pkill -f "ssh -fN $SSH_HOST"
echo "✅ 隧道已关闭"
;;
status)
if pgrep -f "ssh -fN $SSH_HOST" > /dev/null; then
echo "✅ 隧道运行中"
lsof -i :$LOCAL_PORT 2>/dev/null | head -2
else
echo "❌ 隧道未运行"
fi
;;
*)
echo "用法: tunnel-manager.sh start|stop|status"
;;
esac
使用示例
配置好 Skill 后,AI 可以自动调用:
用户: 检查一下远程主机状态
AI: 我来检查远程主机状态
→ 执行 bash scripts/ssh-status.sh
→ 返回:✅ SSH 连接正常,OpenClaw 运行中
用户: 在远程主机上拉取最新代码
AI: 好的,我来在远程执行 git pull
→ 执行 bash scripts/ssh-exec.sh "cd ~/projects/main && git pull"
→ 返回:Already up to date.
💡 常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| SSH Connection refused | 远程主机没开 SSH | 系统设置开启远程登录 |
| 端口配置错误 | SSH 隧道用 28789,配置写 18789 | 统一端口号 |
| OpenClaw unreachable | 隧道没启动 | ssh -fN openclaw |
🔗 参考资料
📝 一句话总结
SSH 隧道 + Remote Mode = 给电脑做个 AI 分身,工作机当遥控器,远程主机当执行者。
💬 你的场景是什么?
- 工作机 + 云服务器?
- 本地 + 家里闲置电脑?
- 还是想让 AI 自动管理多台机器?
评论区聊聊你的使用场景!下一篇讲「群控模式:一人操控多台 AI」👇