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

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

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


目录

  1. 场景说明
  2. [SSH 隧道访问](#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 中运行:

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。

使用方法

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

进阶:创建桌面快捷方式

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

五、常见问题

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

检查清单:

  1. 服务器端权限:
bash 复制代码
# 在虚拟机上执行
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. 确认公钥已添加:
bash 复制代码
cat ~/.ssh/authorized_keys
  1. 检查 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

相关推荐
米高梅狮子12 小时前
第2章 docker容器
运维·docker·云原生·容器·架构·kubernetes·自动化
闵孚龙13 小时前
Claude Code Ultraplan 远程多代理规划全解析:AI Agent、CCR远程容器、异步规划、状态机、计划传送与企业级自动化治理
运维·人工智能·自动化
二宝哥14 小时前
Linux虚拟机网络配置
linux·运维·服务器
卧室小白14 小时前
docker网络与服务编排与集群
运维·docker·容器
陳103015 小时前
Linux:进程间通信 和 简单进程池
linux·运维·服务器
数字化顾问15 小时前
(122页PPT)数字化架构的演进和治理(附下载方式)
java·运维·架构
zt1985q15 小时前
本地部署网页监控工具 Webmonitor 并实现外部访问
运维·服务器·网络·网络协议
匆匆那年96716 小时前
远程 Linux 校园网认证操作手册(本地浏览器法)
linux·运维·服务器
爱喝水的鱼丶17 小时前
SAP-ABAP:ABAP函数 NUMBER_GET_NEXT 详解:从编号范围对象获取下一个编号
运维·数据库·学习·sap·abap
Languorous.17 小时前
Windows 安装 Linux 虚拟机 / WSL 完整教程(新手零失败)
linux·运维·windows