Zum Hauptinhalt springen

Betrieb von OpenClaw.app mit einem entfernten Gateway

OpenClaw.app verwendet SSH-Tunneling, um eine Verbindung zu einem entfernten Gateway herzustellen. Diese Anleitung zeigt Ihnen, wie Sie es einrichten.

Überblick

Schnellstart

Schritt 1: SSH-Konfiguration hinzufügen

Bearbeiten Sie ~/.ssh/config und fügen Sie Folgendes hinzu:
Host remote-gateway
    HostName <REMOTE_IP>          # e.g., 172.27.187.184
    User <REMOTE_USER>            # e.g., jefferson
    LocalForward 18789 127.0.0.1:18789
    IdentityFile ~/.ssh/id_rsa
Ersetzen Sie <REMOTE_IP> und <REMOTE_USER> durch Ihre Werte.

Schritt 2: SSH-Schlüssel kopieren

Kopieren Sie Ihren öffentlichen Schlüssel auf die entfernte Maschine (Passwort einmal eingeben):
ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>

Schritt 3: Gateway-Token festlegen

launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"

Schritt 4: SSH-Tunnel starten

ssh -N remote-gateway &

Schritt 5: OpenClaw.app neu starten

# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app
Die App verbindet sich nun über den SSH-Tunnel mit dem entfernten Gateway.

Automatischer Start des Tunnels bei der Anmeldung

Damit der SSH-Tunnel automatisch startet, wenn Sie sich anmelden, erstellen Sie einen Launch Agent.

PLIST-Datei erstellen

Speichern Sie 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 nun:
  • Automatisch beim Anmelden gestartet
  • Neu gestartet, falls er abstürzt
  • Im Hintergrund weiter ausgeführt
Hinweis zu Legacy-Systemen: Entfernen Sie ggf. vorhandene verbleibende com.openclaw.ssh-tunnel-LaunchAgents.

Fehlerbehebung

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

Funktionsweise

KomponenteWas es tut
LocalForward 18789 127.0.0.1:18789Leitet den lokalen Port 18789 an den entfernten Port 18789 weiter
ssh -NSSH ohne Ausführung entfernter Befehle (nur Portweiterleitung)
KeepAliveStartet den Tunnel automatisch neu, falls er abstürzt
RunAtLoadStartet den Tunnel, wenn der Agent geladen wird
OpenClaw.app verbindet sich auf Ihrer Client-Maschine mit ws://127.0.0.1:18789. Der SSH-Tunnel leitet diese Verbindung an Port 18789 auf der entfernten Maschine weiter, auf der das Gateway ausgeführt wird.