> ## Documentation Index > Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt > Use this file to discover all available pages before exploring further. # Remote Gateway Setup # Running OpenClaw\.app with a Remote Gateway OpenClaw\.app uses SSH tunneling to connect to a remote gateway. This guide shows you how to set it up. ## Overview ``` ┌─────────────────────────────────────────────────────────────┐ │ Client Machine │ │ │ │ OpenClaw.app ──► ws://127.0.0.1:18789 (local port) │ │ │ │ │ ▼ │ │ SSH Tunnel ────────────────────────────────────────────────│ │ │ │ └─────────────────────┼──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Remote Machine │ │ │ │ Gateway WebSocket ──► ws://127.0.0.1:18789 ──► │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ## Quick Setup ### Step 1: Add SSH Config Edit `~/.ssh/config` and add: ```ssh theme={null} Host remote-gateway HostName # e.g., 172.27.187.184 User # e.g., jefferson LocalForward 18789 127.0.0.1:18789 IdentityFile ~/.ssh/id_rsa ``` Replace `` and `` with your values. ### Step 2: Copy SSH Key Copy your public key to the remote machine (enter password once): ```bash theme={null} ssh-copy-id -i ~/.ssh/id_rsa @ ``` ### Step 3: Set Gateway Token ```bash theme={null} launchctl setenv OPENCLAW_GATEWAY_TOKEN "" ``` ### Step 4: Start SSH Tunnel ```bash theme={null} ssh -N remote-gateway & ``` ### Step 5: Restart OpenClaw\.app ```bash theme={null} # Quit OpenClaw.app (⌘Q), then reopen: open /path/to/OpenClaw.app ``` The app will now connect to the remote gateway through the SSH tunnel. *** ## Auto-Start Tunnel on Login To have the SSH tunnel start automatically when you log in, create a Launch Agent. ### Create the PLIST file Save this as `~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist`: ```xml theme={null} Label bot.molt.ssh-tunnel ProgramArguments /usr/bin/ssh -N remote-gateway KeepAlive RunAtLoad ``` ### Load the Launch Agent ```bash theme={null} launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist ``` The tunnel will now: * Start automatically when you log in * Restart if it crashes * Keep running in the background Legacy note: remove any leftover `com.openclaw.ssh-tunnel` LaunchAgent if present. *** ## Troubleshooting **Check if tunnel is running:** ```bash theme={null} ps aux | grep "ssh -N remote-gateway" | grep -v grep lsof -i :18789 ``` **Restart the tunnel:** ```bash theme={null} launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel ``` **Stop the tunnel:** ```bash theme={null} launchctl bootout gui/$UID/bot.molt.ssh-tunnel ``` *** ## How It Works | Component | What It Does | | ------------------------------------ | ------------------------------------------------------------ | | `LocalForward 18789 127.0.0.1:18789` | Forwards local port 18789 to remote port 18789 | | `ssh -N` | SSH without executing remote commands (just port forwarding) | | `KeepAlive` | Automatically restarts tunnel if it crashes | | `RunAtLoad` | Starts tunnel when the agent loads | OpenClaw\.app connects to `ws://127.0.0.1:18789` on your client machine. The SSH tunnel forwards that connection to port 18789 on the remote machine where the Gateway is running.