> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Віддалене керування

Цей потік дає змогу застосунку macOS працювати як повноцінний пульт дистанційного керування для Gateway OpenClaw, що працює на іншому хості (настільному комп’ютері/сервері). Застосунок може підключатися напряму до довірених URL Gateway у LAN/Tailnet або керувати SSH-тунелем, коли віддалений Gateway доступний лише через loopback. Перевірки справності, пересилання Voice Wake і Вебчат повторно використовують ту саму віддалену конфігурацію з *Налаштування → Загальні*.

## Режими

* **Локально (цей Mac)**: Усе працює на ноутбуці. SSH не використовується.
* **Віддалено через SSH (типово)**: Команди OpenClaw виконуються на віддаленому хості. Застосунок Mac відкриває SSH-з’єднання з `-o BatchMode`, а також вибраним посвідченням/ключем і локальним перенаправленням порту.
* **Віддалено напряму (ws/wss)**: Без SSH-тунелю. Застосунок Mac підключається напряму до URL Gateway (наприклад, через LAN, Tailscale, Tailscale Serve або публічний HTTPS reverse proxy).

## Віддалені транспорти

Віддалений режим підтримує два транспорти:

* **SSH-тунель** (типово): Використовує `ssh -N -L ...`, щоб перенаправити порт Gateway на localhost. Gateway бачитиме IP вузла як `127.0.0.1`, оскільки тунель є loopback.
* **Прямий (ws/wss)**: Підключається безпосередньо до URL Gateway. Gateway бачить реальну IP-адресу клієнта.

Застосунок вимикає мультиплексування SSH-з’єднань і переведення у фоновий режим після автентифікації для SSH-процесів, якими володіє застосунок, щоб він міг відстежувати й перезапускати саме цей процес, навіть коли вибраний псевдонім вмикає `ControlMaster` або `ForkAfterAuthentication`.

Перевірка ключа SSH-хоста за замовчуванням сувора, оскільки облікові дані Gateway проходять через цей тунель. Для керованого SSH-псевдоніма, поведінку довіри якого ви явно маєте намір використовувати, увімкніть це через `openclaw-mac configure-remote --ssh-target <alias> --ssh-host-key-policy openssh` або задайте для `gateway.remote.sshHostKeyPolicy` значення `"openssh"`. Це явне ввімкнення використовує чинну політику ключів хоста OpenSSH; спершу перегляньте псевдонім і будь-яку відповідну конфігурацію `Host *` або системну конфігурацію. Зміна SSH-цілі в застосунку або через `configure-remote` скидає політику до `strict`, якщо ви явно не ввімкнете її знову.

У режимі SSH-тунелю знайдені імена хостів LAN/tailnet зберігаються як
`gateway.remote.sshTarget`. Застосунок залишає `gateway.remote.url` на локальній
кінцевій точці тунелю, наприклад `ws://127.0.0.1:18789`, щоб CLI, Вебчат і
локальна служба вузла-хоста використовували той самий безпечний loopback-транспорт.
Коли виявлення повертає і raw IP-адреси Tailnet, і стабільні імена хостів, застосунок
віддає перевагу Tailscale MagicDNS або іменам LAN, щоб віддалені підключення краще
переживали зміни адрес.
Якщо локальний порт тунелю відрізняється від порту віддаленого Gateway, задайте
`gateway.remote.remotePort` як порт на віддаленому хості.

Автоматизацією браузера у віддаленому режимі володіє хост вузла CLI, а не
нативний вузол застосунку macOS. Застосунок запускає встановлену службу хоста вузла,
коли це можливо; якщо вам потрібне керування браузером із цього Mac, установіть/запустіть її через
`openclaw node install ...` і `openclaw node start` (або запустіть
`openclaw node run ...` у передньому плані), а потім націльтеся на цей вузол
із підтримкою браузера.

## Попередні вимоги на віддаленому хості

1. Установіть Node + pnpm і зберіть/установіть OpenClaw CLI (`pnpm install && pnpm build && pnpm link --global`).
2. Переконайтеся, що `openclaw` є в PATH для неінтерактивних shell (за потреби створіть symlink у `/usr/local/bin` або `/opt/homebrew/bin`).
3. Лише для SSH-транспорту: відкрийте SSH з автентифікацією за ключем. Для стабільної доступності поза LAN ми рекомендуємо IP-адреси **Tailscale**.

## Налаштування застосунку macOS

Щоб попередньо налаштувати застосунок без вітального потоку:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw-mac configure-remote \
  --ssh-target user@gateway.local \
  --local-port 18789 \
  --remote-port 18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

Для Gateway, який уже доступний у довіреній LAN або Tailnet, повністю пропустіть SSH:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw-mac configure-remote \
  --direct-url ws://192.168.0.202:18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

Це записує віддалену конфігурацію, позначає onboarding завершеним і дає застосунку змогу володіти
вибраним транспортом під час запуску.

1. Відкрийте *Налаштування → Загальні*.
2. У розділі **OpenClaw працює** виберіть **Віддалено** і задайте:
   * **Транспорт**: **SSH-тунель** або **Прямий (ws/wss)**.
   * **SSH-ціль**: `user@host` (необов’язково `:port`).
     * Якщо Gateway у тій самій LAN і оголошує Bonjour, виберіть його зі знайденого списку, щоб автоматично заповнити це поле.
   * **URL Gateway** (лише прямий): `wss://gateway.example.ts.net` (або `ws://...` для локального/LAN).
   * **Файл посвідчення** (розширено): шлях до вашого ключа.
   * **Корінь проєкту** (розширено): шлях віддаленого checkout, який використовується для команд.
   * **Шлях CLI** (розширено): необов’язковий шлях до придатної до запуску точки входу/бінарного файлу `openclaw` (автоматично заповнюється, коли оголошується).
3. Натисніть **Перевірити віддалене**. Успіх означає, що віддалена команда `openclaw status --json` виконується правильно. Помилки зазвичай означають проблеми з PATH/CLI; код виходу 127 означає, що CLI не знайдено віддалено.
4. Перевірки справності й Вебчат тепер автоматично працюватимуть через вибраний транспорт.

## Вебчат

* **SSH-тунель**: Вебчат підключається до Gateway через перенаправлений керівний порт WebSocket (типово 18789).
* **Прямий (ws/wss)**: Вебчат підключається безпосередньо до налаштованого URL Gateway.
* Окремого HTTP-сервера WebChat більше немає.

## Дозволи

* Віддаленому хосту потрібні ті самі дозволи TCC, що й локальному (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Запустіть onboarding на цій машині, щоб надати їх один раз.
* Вузли оголошують свій стан дозволів через `node.list` / `node.describe`, щоб агенти знали, що доступно.

## Примітки щодо безпеки

* Віддавайте перевагу loopback-прив’язкам на віддаленому хості й підключайтеся через SSH, Tailscale Serve або довірений прямий URL Tailnet/LAN.
* SSH-тунелювання за замовчуванням вимагає вже довіреного ключа хоста. Спершу довірте ключ хоста, щоб він існував у налаштованому файлі known-hosts, або явно виберіть `gateway.remote.sshHostKeyPolicy: "openssh"` для керованого псевдоніма, політику довіри OpenSSH якого ви приймаєте.
* Якщо ви прив’язуєте Gateway до інтерфейсу, відмінного від loopback, вимагайте чинну автентифікацію Gateway: token, password або identity-aware reverse proxy з `gateway.auth.mode: "trusted-proxy"`.
* Див. [Безпека](/uk/gateway/security) і [Tailscale](/uk/gateway/tailscale).

## Потік входу WhatsApp (віддалено)

* Запустіть `openclaw channels login --verbose` **на віддаленому хості**. Відскануйте QR у WhatsApp на телефоні.
* Повторно запустіть вхід на цьому хості, якщо автентифікація завершиться. Перевірка справності покаже проблеми з прив’язкою.

## Усунення несправностей

* **exit 127 / не знайдено**: `openclaw` немає в PATH для non-login shells. Додайте його до `/etc/paths`, shell rc або створіть symlink у `/usr/local/bin`/`/opt/homebrew/bin`.
* **Проба справності не вдалася**: перевірте доступність SSH, PATH і те, що Baileys увійшов у систему (`openclaw status --json`).
* **Вебчат завис**: підтвердьте, що Gateway працює на віддаленому хості, а перенаправлений порт відповідає WS-порту Gateway; UI потребує справного WS-з’єднання.
* **IP вузла показує 127.0.0.1**: очікувано з SSH-тунелем. Перемкніть **Транспорт** на **Прямий (ws/wss)**, якщо хочете, щоб Gateway бачив реальну IP-адресу клієнта.
* **Dashboard працює, але можливості Mac офлайн**: це означає, що operator/control-з’єднання застосунку справне, але companion node connection не підключене або не має своєї command surface. Відкрийте розділ пристрою в рядку меню й перевірте, чи Mac має стан `paired · disconnected`. Для кінцевих точок Tailscale Serve `wss://*.ts.net` застосунок виявляє застарілі legacy TLS leaf pins після ротації сертифіката, очищає застарілий pin, коли macOS довіряє новому сертифікату, і автоматично повторює спробу. Якщо сертифікат не є довіреним системою або хост не є іменем Tailscale Serve, задайте `gateway.remote.tlsFingerprint` як очікуваний fingerprint сертифіката, перегляньте сертифікат або перемкніться на **Віддалено через SSH**.
* **Voice Wake**: тригерні фрази автоматично пересилаються у віддаленому режимі; окремий пересилач не потрібен.

## Звуки сповіщень

Вибирайте звуки для кожного сповіщення зі скриптів за допомогою `openclaw` і `node.invoke`, наприклад:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
```

У застосунку більше немає глобального перемикача "типового звуку"; викликачі вибирають звук (або не вибирають жодного) для кожного запиту.

## Пов’язане

* [Застосунок macOS](/uk/platforms/macos)
* [Віддалений доступ](/uk/gateway/remote)
