OpenClaw 远程访问配置指南:SSH 隧道与免密登录
本文介绍如何从 Windows 访问部署在虚拟机/远程服务器上的 OpenClaw Gateway,包括 SSH 隧道配置和免密登录设置。
目录
一、场景说明
网络架构
┌─────────────────────┐ ┌─────────────────────┐
│ Windows 主机 │ │ 虚拟机/服务器 │
│ │ SSH 隧道 │ │
│ 浏览器 ◄───────────┼───────────────────►│ OpenClaw Gateway │
│ localhost:18790 │ 端口转发 │ 127.0.0.1:18789 │
└─────────────────────┘ └─────────────────────┘
为什么需要 SSH 隧道?
OpenClaw Gateway 默认绑定在 127.0.0.1(本地回环),这是最安全的配置。直接绑定 LAN IP 可能会遇到 WebSocket 认证问题(1008 错误)。
SSH 隧道的优势:
- ✅ 安全(加密传输)
- ✅ 稳定(避免 WebSocket 直连问题)
- ✅ 无需修改 Gateway 配置
二、SSH 隧道访问
基本命令
在 Windows PowerShell 中运行:
powershell
ssh -N -L 18790:127.0.0.1:18789 用户名@虚拟机IP
参数说明:
| 参数 | 说明 |
|---|---|
-N |
不执行远程命令,只做端口转发 |
-L |
本地端口转发 |
18790 |
Windows 本地端口(可自定义) |
127.0.0.1:18789 |
虚拟机上的 Gateway 地址 |
用户名@虚拟机IP |
SSH 登录信息 |
实际示例:
powershell
ssh -N -L 18790:127.0.0.1:18789 maple@162.16.30.210
访问 Gateway
隧道建立后,在浏览器打开:
http://localhost:18790/?token=你的Token
或者打开 http://localhost:18790,然后手动输入 Token。
三、配置免密登录
每次 SSH 都输密码很麻烦,配置密钥认证可以实现免密登录。
步骤 1:生成 SSH 密钥(Windows)
打开 PowerShell,运行:
powershell
ssh-keygen -t ed25519
提示时一路回车(不设置密码)。
会生成两个文件:
C:\Users\你的用户名\.ssh\id_ed25519--- 私钥(保密)C:\Users\你的用户名\.ssh\id_ed25519.pub--- 公钥(可公开)
步骤 2:复制公钥到服务器
运行以下命令(一行):
powershell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh 用户名@虚拟机IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
实际示例:
powershell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh maple@162.16.30.210 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
这次需要输入密码,之后就不用了。
步骤 3:测试免密登录
powershell
ssh maple@162.16.30.210 "echo 免密登录成功"
如果显示 免密登录成功 而不要求输密码,配置完成!
四、创建快捷启动脚本
创建批处理文件
在桌面(或任意位置)创建 openclaw隧道.bat:
batch
@echo off
chcp 65001 >nul
echo ========================================
echo OpenClaw Gateway SSH 隧道
echo ========================================
echo.
echo 正在连接到 Gateway...
echo.
echo 连接成功后,请访问:
echo http://localhost:18790
echo.
echo [!] 保持此窗口开启
echo [!] 关闭窗口会断开连接
echo.
echo ----------------------------------------
ssh -N -L 18790:127.0.0.1:18789 maple@162.16.30.210
将
maple@162.16.30.210替换为你的实际用户名和 IP。
使用方法
- 启动虚拟机,确保 OpenClaw Gateway 正在运行
- 双击
openclaw隧道.bat - 窗口显示连接信息后,打开浏览器访问
http://localhost:18790 - 使用完毕后关闭命令行窗口
进阶:创建桌面快捷方式
- 右键
openclaw隧道.bat→ 创建快捷方式 - 右键快捷方式 → 属性 → 更改图标
- 可以设置一个好看的图标
五、常见问题
Q1: 连接时提示 "Connection refused"
原因: 虚拟机未启动或 SSH 服务未运行。
解决:
bash
# 在虚拟机上检查 SSH 服务
sudo systemctl status sshd
# 如果未运行,启动它
sudo systemctl start sshd
Q2: 连接时提示 "Host key verification failed"
原因: 服务器指纹变更(重装系统等)。
解决:
powershell
# 删除旧的指纹记录
ssh-keygen -R 162.16.30.210
Q3: 免密登录不生效
检查清单:
- 服务器端权限:
bash
# 在虚拟机上执行
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- 确认公钥已添加:
bash
cat ~/.ssh/authorized_keys
- 检查 SSH 配置:
bash
# 确保这些选项没有被禁用
grep -E "PubkeyAuthentication|AuthorizedKeysFile" /etc/ssh/sshd_config
Q4: 浏览器显示 1008 错误
原因: Token 验证失败。
解决:
- 确认 Token 正确(检查
~/.openclaw/openclaw.json中的gateway.auth.token) - URL 中 Token 不要有多余空格
- 尝试手动在页面输入 Token 而不是 URL 参数
Q5: 隧道断开后如何重连?
直接重新运行 openclaw隧道.bat 或 SSH 命令即可。
Q6: 如何让隧道后台运行?
Windows 上可以用 start 命令:
batch
start /min ssh -N -L 18790:127.0.0.1:18789 maple@162.16.30.210
或者使用 nssm 等工具将其注册为 Windows 服务。
附录:相关配置参考
OpenClaw Gateway 配置位置
~/.openclaw/openclaw.json
查看 Gateway Token
bash
cat ~/.openclaw/openclaw.json | grep -A2 '"auth"'
重启 Gateway
bash
openclaw gateway restart
查看 Gateway 状态
bash
openclaw status
openclaw health
总结
| 步骤 | 命令/操作 |
|---|---|
| 1. 建立隧道 | ssh -N -L 18790:127.0.0.1:18789 user@host |
| 2. 生成密钥 | ssh-keygen -t ed25519 |
| 3. 复制公钥 | `type ... |
| 4. 创建脚本 | 保存为 .bat 文件双击运行 |
| 5. 访问 | http://localhost:18790/?token=xxx |
配置一次,以后只需双击脚本即可连接!
文档整理于 2026-02-03
适用于 Windows 连接 Linux 虚拟机/服务器上的 OpenClaw