원격 Gateway로 OpenClaw.app 실행
OpenClaw.app은 SSH 터널링을 사용하여 원격 gateway에 연결합니다. 설정 방법은 다음과 같습니다.
개요
┌─────────────────────────────────────────────────────────────┐
│ 클라이언트 머신 │
│ │
│ OpenClaw.app ──► ws://127.0.0.1:18789 (로컬 포트) │
│ │ │
│ ▼ │
│ SSH 터널 ────────────────────────────────────────────────────│
│ │ │
└─────────────────────┼──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 원격 머신 │
│ │
│ Gateway WebSocket ──► ws://127.0.0.1:18789 ──► │
│ │
└─────────────────────────────────────────────────────────────┘
빠른 설정
1단계: SSH Config 추가
~/.ssh/config를 편집하고 추가:
Host remote-gateway
HostName <REMOTE_IP> # 예: 172.27.187.184
User <REMOTE_USER> # 예: jefferson
LocalForward 18789 127.0.0.1:18789
IdentityFile ~/.ssh/id_rsa
<REMOTE_IP>와 <REMOTE_USER>를 실제 값으로 교체하세요.
2단계: SSH 키 복사
공개 키를 원격 머신에 복사 (한 번만 비밀번호 입력):
ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>
3단계: Gateway Token 설정
launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"
4단계: SSH 터널 시작
ssh -N remote-gateway &
5단계: OpenClaw.app 재시작
# OpenClaw.app 종료 (⌘Q), 그런 다음 다시 열기:
open /path/to/OpenClaw.app
이제 앱이 SSH 터널을 통해 원격 gateway에 연결됩니다.
로그인 시 터널 자동 시작
로그인할 때 SSH 터널이 자동으로 시작되도록 하려면 Launch Agent를 만드세요.
PLIST 파일 생성
~/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 로드
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist
이제 터널이:
- 로그인할 때 자동으로 시작됩니다
- 충돌하면 재시작합니다
- 백그라운드에서 계속 실행됩니다
레거시 참고사항: 남아있는 com.openclaw.ssh-tunnel LaunchAgent가 있으면 제거하세요.
트러블슈팅
터널이 실행 중인지 확인:
ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789
터널 재시작:
launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel
터널 중지:
launchctl bootout gui/$UID/bot.molt.ssh-tunnel
작동 방식
| 구성 요소 | 역할 |
|---|---|
| LocalForward 18789 127.0.0.1:18789 | 로컬 포트 18789를 원격 포트 18789로 전달 |
| ssh -N | 원격 명령을 실행하지 않는 SSH (포트 포워딩만) |
| KeepAlive | 충돌 시 터널 자동 재시작 |
| RunAtLoad | agent 로드 시 터널 시작 |
OpenClaw.app은 클라이언트 머신의 ws://127.0.0.1:18789에 연결합니다. SSH 터널이 그 연결을 Gateway가 실행 중인 원격 머신의 포트 18789로 전달합니다.