Перейти до основного вмісту

Pairing

«Pairing» — це явний крок схвалення власником в OpenClaw. Він використовується у двох місцях:
  1. DM pairing (кому дозволено спілкуватися з ботом)
  2. Node pairing (яким пристроям/вузлам дозволено приєднуватися до мережі шлюзу)
Контекст безпеки: Безпека

1) DM pairing (вхідний доступ до чату)

Коли для каналу налаштовано політику DM pairing, невідомі відправники отримують короткий код, а їхнє повідомлення не обробляється, доки ви не надасте схвалення. Типові політики DM задокументовано тут: Безпека Коди pairing:
  • 8 символів, верхній регістр, без неоднозначних символів (0O1I).
  • Термін дії спливає через 1 годину. Бот надсилає повідомлення pairing лише тоді, коли створюється новий запит (приблизно раз на годину для кожного відправника).
  • Кількість очікувальних запитів DM pairing за замовчуванням обмежена 3 на канал; додаткові запити ігноруються, доки один із наявних не спливе або не буде схвалений.

Схвалення відправника

openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Підтримувані канали: bluebubbles, discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, openclaw-weixin, signal, slack, synology-chat, telegram, twitch, whatsapp, zalo, zalouser.

Де зберігається стан

Зберігається в ~/.openclaw/credentials/:
  • Очікувальні запити: <channel>-pairing.json
  • Сховище схваленого списку дозволу:
    • Типовий обліковий запис: <channel>-allowFrom.json
    • Нетиповий обліковий запис: <channel>-<accountId>-allowFrom.json
Поведінка області дії облікових записів:
  • Нетипові облікові записи читають і записують лише свій файл списку дозволу в межах області дії.
  • Типовий обліковий запис використовує файл списку дозволу каналу без області дії.
Ставтеся до цих даних як до чутливих (вони контролюють доступ до вашого помічника). Важливо: це сховище використовується для доступу через DM. Авторизація груп налаштовується окремо. Схвалення коду DM pairing не означає автоматичний дозвіл цьому відправникові запускати команди в групах або керувати ботом у групах. Для групового доступу налаштуйте явні списки дозволу груп для каналу (наприклад, groupAllowFrom, groups або перевизначення для окремих груп/тем залежно від каналу).

2) Node device pairing (вузли iOS/Android/macOS/headless)

Вузли підключаються до Gateway як пристрої з role: node. Gateway створює запит pairing пристрою, який потрібно схвалити.

Pairing через Telegram (рекомендовано для iOS)

Якщо ви використовуєте плагін device-pair, ви можете повністю виконати початковий pairing пристрою через Telegram:
  1. У Telegram надішліть боту повідомлення: /pair
  2. Бот відповість двома повідомленнями: повідомленням з інструкцією та окремим повідомленням із кодом налаштування (його зручно копіювати й вставляти в Telegram).
  3. На телефоні відкрийте застосунок OpenClaw для iOS → Settings → Gateway.
  4. Вставте код налаштування й підключіться.
  5. Поверніться до Telegram: /pair pending (перегляньте ID запитів, роль і scopes), потім схваліть.
Код налаштування — це JSON-пейлоад у кодуванні base64, який містить:
  • url: URL WebSocket шлюзу (ws://... або wss://...)
  • bootstrapToken: короткоживучий bootstrap-токен для одного пристрою, який використовується для початкового handshake pairing
Цей bootstrap-токен містить вбудований bootstrap-профіль pairing:
  • основний переданий токен node залишається з scopes: []
  • будь-який переданий токен operator залишається обмеженим bootstrap-списком дозволу: operator.approvals, operator.read, operator.talk.secrets, operator.write
  • перевірки bootstrap scopes використовують префікси ролей, а не один плаский пул scopes: записи scopes для operator задовольняють лише запити operator, а ролі, відмінні від operator, усе одно мають запитувати scopes під префіксом власної ролі
Ставтеся до коду налаштування як до пароля, поки він дійсний.

Схвалення вузлового пристрою

openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
Якщо той самий пристрій повторно спробує підключитися з іншими даними автентифікації (наприклад, іншою роллю/scopes/публічним ключем), попередній очікувальний запит буде заміщено, а новий requestId буде створено.

Зберігання стану node pairing

Зберігається в ~/.openclaw/devices/:
  • pending.json (короткоживучий; термін дії очікувальних запитів спливає)
  • paired.json (спарені пристрої + токени)

Примітки

  • Застарілий API node.pair.* (CLI: openclaw nodes pending|approve|reject|rename) є окремим сховищем pairing, яким володіє шлюз. Вузли WS однаково потребують pairing пристрою.
  • Запис pairing є стійким джерелом правди для схвалених ролей. Активні токени пристроїв залишаються обмеженими цим схваленим набором ролей; сторонній запис токена поза схваленими ролями не створює нового доступу.

Пов’язана документація