OpenClaw 远程访问配置指南:SSH 隧道与免密登录
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 中运行:
ssh -N -L 18790:127.0.0.1:18789 用户名@虚拟机IP 参数说明:
| 参数 | 说明 |
|---|---|
-N | 不执行远程命令,只做端口转发 |
-L | 本地端口转发 |
18790 | Windows 本地端口(可自定义) |
127.0.0.1:18789 | 虚拟机上的 Gateway 地址 |
用户名@虚拟机IP | SSH 登录信息 |
实际示例:
ssh -N -L 18790:127.0.0.1:18789 [email protected] 访问 Gateway
隧道建立后,在浏览器打开:
http://localhost:18790/?token=你的Token 或者打开 http://localhost:18790,然后手动输入 Token。
三、配置免密登录
每次 SSH 都输密码很麻烦,配置密钥认证可以实现免密登录。
步骤 1:生成 SSH 密钥(Windows)
打开 PowerShell,运行:
ssh-keygen -t ed25519 提示时一路回车(不设置密码)。
会生成两个文件:
C:\Users\你的用户名\.ssh\id_ed25519— 私钥(保密)C:\Users\你的用户名\.ssh\id_ed25519.pub— 公钥(可公开)
步骤 2:复制公钥到服务器
运行以下命令(一行):
type$env:USERPROFILE\.ssh\id_ed25519.pub | ssh 用户名@虚拟机IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"实际示例:
type$env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"这次需要输入密码,之后就不用了。
步骤 3:测试免密登录
ssh [email protected] "echo 免密登录成功"如果显示 免密登录成功 而不要求输密码,配置完成!
四、创建快捷启动脚本
创建批处理文件
在桌面(或任意位置)创建 openclaw隧道.bat:
@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 [email protected] 将 [email protected] 替换为你的实际用户名和 IP。使用方法
- 启动虚拟机,确保 OpenClaw Gateway 正在运行
- 双击
openclaw隧道.bat - 窗口显示连接信息后,打开浏览器访问
http://localhost:18790 - 使用完毕后关闭命令行窗口
进阶:创建桌面快捷方式
- 右键
openclaw隧道.bat→ 创建快捷方式 - 右键快捷方式 → 属性 → 更改图标
- 可以设置一个好看的图标
五、常见问题
Q1: 连接时提示 “Connection refused”
原因: 虚拟机未启动或 SSH 服务未运行。
解决:
# 在虚拟机上检查 SSH 服务sudo systemctl status sshd # 如果未运行,启动它sudo systemctl start sshd Q2: 连接时提示 “Host key verification failed”
原因: 服务器指纹变更(重装系统等)。
解决:
# 删除旧的指纹记录 ssh-keygen -R 162.16.30.210 Q3: 免密登录不生效
检查清单:
- 服务器端权限:
# 在虚拟机上执行chmod700 ~/.ssh chmod600 ~/.ssh/authorized_keys - 确认公钥已添加:
cat ~/.ssh/authorized_keys - 检查 SSH 配置:
# 确保这些选项没有被禁用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 命令:
start /min ssh -N -L 18790:127.0.0.1:18789 [email protected] 或者使用 nssm 等工具将其注册为 Windows 服务。
附录:相关配置参考
OpenClaw Gateway 配置位置
~/.openclaw/openclaw.json 查看 Gateway Token
cat ~/.openclaw/openclaw.json |grep -A2 '"auth"'重启 Gateway
openclaw gateway restart 查看 Gateway 状态
openclaw status openclaw health 总结
| 步骤 | 命令/操作 |
|---|---|
| 1. 建立隧道 | ssh -N -L 18790:127.0.0.1:18789 user@host |
| 2. 生成密钥 | ssh-keygen -t ed25519 |
| 3. 复制公钥 | type ... | ssh user@host "..." |
| 4. 创建脚本 | 保存为 .bat 文件双击运行 |
| 5. 访问 | http://localhost:18790/?token=xxx |
配置一次,以后只需双击脚本即可连接!
文档整理于 2026-02-03
适用于 Windows 连接 Linux 虚拟机/服务器上的 OpenClaw