OpenClaw 远程访问配置指南:SSH 隧道与免密登录

OpenClaw 远程访问配置指南:SSH 隧道与免密登录

OpenClaw 远程访问配置指南:SSH 隧道与免密登录

本文介绍如何从 Windows 访问部署在虚拟机/远程服务器上的 OpenClaw Gateway,包括 SSH 隧道配置和免密登录设置。

目录

  1. 场景说明
  2. SSH 隧道访问
  3. 配置免密登录
  4. 创建快捷启动脚本
  5. 常见问题

一、场景说明

网络架构

┌─────────────────────┐ ┌─────────────────────┐ │ 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本地端口转发
18790Windows 本地端口(可自定义)
127.0.0.1:18789虚拟机上的 Gateway 地址
用户名@虚拟机IPSSH 登录信息

实际示例:

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。

使用方法

  1. 启动虚拟机,确保 OpenClaw Gateway 正在运行
  2. 双击 openclaw隧道.bat
  3. 窗口显示连接信息后,打开浏览器访问 http://localhost:18790
  4. 使用完毕后关闭命令行窗口

进阶:创建桌面快捷方式

  1. 右键 openclaw隧道.bat → 创建快捷方式
  2. 右键快捷方式 → 属性 → 更改图标
  3. 可以设置一个好看的图标

五、常见问题

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: 免密登录不生效

检查清单:

  1. 服务器端权限:
# 在虚拟机上执行chmod700 ~/.ssh chmod600 ~/.ssh/authorized_keys 
  1. 确认公钥已添加:
cat ~/.ssh/authorized_keys 
  1. 检查 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

Read more

【OpenClaw】启动报错 disconnected (1008): unauthorized: gateway token mismatch

【OpenClaw】启动报错 disconnected (1008): unauthorized: gateway token mismatch 📑 文章目录 1. 一、问题现象 2. 二、错误原因分析 3. 三、快速修复(60 秒) 4. 四、Docker 用户特别注意 5. 五、彻底修复(停止 → 清除 → 重启) 6. 六、易混淆错误辨析 7. 七、常用命令速查表 8. 八、总结 一、问题现象 OpenClaw 启动后,控制台输出以下报错信息: disconnected (1008): unauthorized: gateway token mismatch

By Ne0inhk
Flutter 三方库 test_api 的鸿蒙化适配指南 - 实现具备底层测试驱动与自定义匹配器扩展的质量基石架构、支持端侧测试骨架深度定制实战

Flutter 三方库 test_api 的鸿蒙化适配指南 - 实现具备底层测试驱动与自定义匹配器扩展的质量基石架构、支持端侧测试骨架深度定制实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 test_api 的鸿蒙化适配指南 - 实现具备底层测试驱动与自定义匹配器扩展的质量基石架构、支持端侧测试骨架深度定制实战 前言 在进行 Flutter for OpenHarmony 的大规模测试框架开发或构建企业专有的测试 SDK 时,简单的 test 库往往无法满足对测试执行流程、自定义断言逻辑以及测试套件生命周期的精细化控制。test_api 是 Dart 官方测试生态的核心底层库,它定义了所有测试相关的抽象契约。本文将探讨如何在鸿蒙端利用此库构建极致、专业的测试基础设施。 一、原直观解析 / 概念介绍 1.1 基础原理 该库定义了 Dart 测试系统的“语意骨架”。它不负责具体的测试运行(那由 test_core 负责),而是构筑了 test(

By Ne0inhk
Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装 前言 在进行 Flutter for OpenHarmony 的社交或客户支持类应用开发时,除了核心的 WebSocket 传输,如何规范化定义“消息(Message)”的数据结构以及处理复杂的对话逻辑状态,往往决定了项目的后期维护性。bavard 是一个专为高度语义化聊天交互设计的协议封装库。它能让你在鸿蒙端以极具逻辑感的对象模型来驱动对话流。本文将带大家了解如何利用 bavard 构建标准化的聊天架构。 一、原理解析 / 概念介绍 1.1 基础原理 bavard 将一次对话拆解为“参与者(Participants)”、“话题(Topics)”和“原子消息(Discrete Messages)”。它提供了一套完整的状态机,用于驱动从“

By Ne0inhk
电科金仓“异构多活架构”:破解浙江省人民医院集团化信创难题的密钥

电科金仓“异构多活架构”:破解浙江省人民医院集团化信创难题的密钥

作为浙江省卫健委直属,省内规模最大、实力最强的综合性三甲医院,浙江省人民医院(下称“浙人医”)庞大的服务体量与业务规模,使其成为省内卫健系统信创试点的核心选择,承担着探索和表率双重使命。电科金仓以“异构多活容灾架构”为核心的技术体系,不仅助力浙人医突破瓶颈,打造国内首个LIS系统国产化异构多院区多活改造案例,更构建了一套适配集团化医院信创的“全链路解决方案”,为行业提供了可落地的技术范本。 一、集团化医院信创的三重难题 浙人医目前拥有朝晖、望江山、越城、富阳四大已运行院区、滨江、萧山两个在建院区及全面托管的八家分院,横跨杭州绍兴两地。浙人医的信创难点,源于其跨区域、多院区、高负荷的运营特性与医疗业务零中断、高安全的本质要求相互交织。此外由于各院区和分院在信息化建设初期技术能力、资源及政策要求等条件不一,受历史因素影响,各主体之间信息化建设的情况差异较大。信创启动前,浙人医院内并存Oracle、SQL Server、MySQL、PostgreSQL等多种数据库,院内的100余个业务系统由多个开发商建设,各系统对国产数据库的适配能力参差不齐。这些问题都需要借助信创契机一并解决。 面

By Ne0inhk