OpenClaw.app mit einem Remote Gateway verwenden

OpenClaw.app nutzt SSH-Tunneling, um sich mit einem Remote Gateway zu verbinden. Diese Anleitung zeigt dir, wie du das einrichtest.

Übersicht

┌─────────────────────────────────────────────────────────────┐
│                        Client Machine                          │
│                                                              │
│  OpenClaw.app ──► ws://127.0.0.1:18789 (local port)           │
│                     │                                        │
│                     ▼                                        │
│  SSH Tunnel ────────────────────────────────────────────────│
│                     │                                        │
└─────────────────────┼──────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│                         Remote Machine                        │
│                                                              │
│  Gateway WebSocket ──► ws://127.0.0.1:18789 ──►              │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Schnelleinrichtung

Schritt 1: SSH-Konfiguration hinzufügen

Bearbeite ~/.ssh/config und füge Folgendes hinzu:

Host remote-gateway
    HostName <REMOTE_IP>          # z.B. 172.27.187.184
    User <REMOTE_USER>            # z.B. jefferson
    LocalForward 18789 127.0.0.1:18789
    IdentityFile ~/.ssh/id_rsa

Ersetze <REMOTE_IP> und <REMOTE_USER> mit deinen Werten.

Schritt 2: SSH-Schlüssel kopieren

Kopiere deinen öffentlichen Schlüssel auf den Remote-Rechner (Passwort einmal eingeben):

ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>

Schritt 3: Gateway Token setzen

launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"

Schritt 4: SSH-Tunnel starten

ssh -N remote-gateway &

Schritt 5: OpenClaw.app neu starten

# OpenClaw.app beenden (⌘Q), dann neu öffnen:
open /path/to/OpenClaw.app

Die App verbindet sich jetzt über den SSH-Tunnel mit dem Remote Gateway.


Tunnel beim Login automatisch starten

Damit der SSH-Tunnel automatisch beim Login startet, erstellst du einen Launch Agent.

PLIST-Datei erstellen

Speichere dies als ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>bot.molt.ssh-tunnel</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/ssh</string>
        <string>-N</string>
        <string>remote-gateway</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Launch Agent laden

launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist

Der Tunnel wird jetzt:

  • Automatisch beim Login starten
  • Bei Absturz neu starten
  • Im Hintergrund weiterlaufen

Hinweis: Entferne eventuell vorhandene alte com.openclaw.ssh-tunnel LaunchAgents.


Troubleshooting

Prüfen, ob der Tunnel läuft:

ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789

Tunnel neu starten:

launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel

Tunnel stoppen:

launchctl bootout gui/$UID/bot.molt.ssh-tunnel

So funktioniert es

KomponenteFunktion
LocalForward 18789 127.0.0.1:18789Leitet lokalen Port 18789 an Remote-Port 18789 weiter
ssh -NSSH ohne Remote-Befehle (nur Port-Forwarding)
KeepAliveStartet den Tunnel automatisch neu bei Absturz
RunAtLoadStartet den Tunnel beim Laden des Agents

OpenClaw.app verbindet sich mit ws://127.0.0.1:18789 auf deinem Client-Rechner. Der SSH-Tunnel leitet diese Verbindung an Port 18789 auf dem Remote-Rechner weiter, wo das Gateway läuft.