---
read_when:
    - إعداد التحكم في الوصول إلى الرسائل المباشرة
    - إقران عقدة iOS/Android جديدة
    - مراجعة الوضع الأمني لـ OpenClaw
summary: 'نظرة عامة على الاقتران: وافق على من يمكنه مراسلتك مباشرة + العقد التي يمكنها الانضمام'
title: الاقتران
x-i18n:
    generated_at: "2026-05-02T07:18:44Z"
    model: gpt-5.5
    provider: openai
    source_hash: bb68d87c0e1dfe7c9a6a6d9415f4c63625755fb43a2e22a1d1374ff0a63e49c4
    source_path: channels/pairing.md
    workflow: 16
---

«الإقران» هو خطوة الموافقة الصريحة على الوصول في OpenClaw.
يُستخدم في موضعين:

1. **إقران الرسائل الخاصة** (من يُسمح له بالتحدث إلى البوت)
2. **إقران Node** (ما الأجهزة/العُقد التي يُسمح لها بالانضمام إلى شبكة Gateway)

سياق الأمان: [الأمان](/ar/gateway/security)

## 1) إقران الرسائل الخاصة (وصول الدردشة الواردة)

عند تكوين قناة بسياسة رسائل خاصة `pairing`، يحصل المرسلون غير المعروفين على رمز قصير ولا تتم **معالجة** رسالتهم حتى توافق عليها.

سياسات الرسائل الخاصة الافتراضية موثقة في: [الأمان](/ar/gateway/security)

`dmPolicy: "open"` تكون عامة فقط عندما تتضمن قائمة السماح الفعلية للرسائل الخاصة `"*"`.
يتطلب الإعداد والتحقق وجود حرف البدل هذا لتكوينات الفتح العام. إذا كانت الحالة الموجودة
تحتوي على `open` مع إدخالات `allowFrom` محددة، فسيظل وقت التشغيل يقبل
هؤلاء المرسلين فقط، ولا توسّع موافقات مخزن الإقران وصول `open`.

رموز الإقران:

- 8 أحرف، كبيرة، بلا أحرف ملتبسة (`0O1I`).
- **تنتهي صلاحيتها بعد ساعة واحدة**. لا يرسل البوت رسالة الإقران إلا عند إنشاء طلب جديد (تقريبًا مرة واحدة في الساعة لكل مرسل).
- تُحد طلبات إقران الرسائل الخاصة المعلقة إلى **3 لكل قناة** افتراضيًا؛ يتم تجاهل الطلبات الإضافية حتى تنتهي صلاحية أحدها أو تتم الموافقة عليه.

### الموافقة على مرسل

```bash
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
```

إذا لم يكن مالك الأوامر مكوّنًا بعد، فإن الموافقة على رمز إقران الرسائل الخاصة تهيئ أيضًا
`commands.ownerAllowFrom` إلى المرسل الموافق عليه، مثل `telegram:123456789`.
يمنح ذلك إعدادات المرة الأولى مالكًا صريحًا للأوامر ذات الامتيازات ومطالبات موافقة التنفيذ.
بعد وجود مالك، تمنح موافقات الإقران اللاحقة وصول الرسائل الخاصة فقط؛ ولا تضيف مزيدًا من المالكين.

القنوات المدعومة: `bluebubbles`, `discord`, `feishu`, `googlechat`, `imessage`, `irc`, `line`, `matrix`, `mattermost`, `msteams`, `nextcloud-talk`, `nostr`, `openclaw-weixin`, `signal`, `slack`, `synology-chat`, `telegram`, `twitch`, `whatsapp`, `zalo`, `zalouser`.

### مجموعات المرسلين القابلة لإعادة الاستخدام

استخدم `accessGroups` على المستوى الأعلى عندما ينبغي أن تنطبق مجموعة المرسلين الموثوقين نفسها على
قنوات رسائل متعددة أو على قوائم السماح للرسائل الخاصة والمجموعات معًا.

تستخدم المجموعات الثابتة `type: "message.senders"` وتُشار إليها باستخدام
`accessGroup:<name>` من قوائم السماح للقنوات:

```json5
{
  accessGroups: {
    operators: {
      type: "message.senders",
      members: {
        discord: ["discord:123456789012345678"],
        telegram: ["987654321"],
        whatsapp: ["+15551234567"],
      },
    },
  },
  channels: {
    telegram: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators"] },
    whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["accessGroup:operators"] },
  },
}
```

مجموعات الوصول موثقة بالتفصيل هنا: [مجموعات الوصول](/ar/channels/access-groups)

### مكان وجود الحالة

مخزنة ضمن `~/.openclaw/credentials/`:

- الطلبات المعلقة: `<channel>-pairing.json`
- مخزن قائمة السماح الموافق عليها:
  - الحساب الافتراضي: `<channel>-allowFrom.json`
  - الحساب غير الافتراضي: `<channel>-<accountId>-allowFrom.json`

سلوك تحديد نطاق الحساب:

- تقرأ الحسابات غير الافتراضية ملف قائمة السماح المحدد النطاق الخاص بها وتكتب إليه فقط.
- يستخدم الحساب الافتراضي ملف قائمة السماح غير المحدد النطاق على مستوى القناة.

عامل هذه الملفات على أنها حساسة (فهي تتحكم في الوصول إلى مساعدك).

<Note>
مخزن قائمة السماح بالإقران مخصص لوصول الرسائل الخاصة. تخويل المجموعات منفصل.
لا تؤدي الموافقة على رمز إقران الرسائل الخاصة تلقائيًا إلى السماح لذلك المرسل بتشغيل أوامر المجموعات
أو التحكم في البوت داخل المجموعات. تمهيد المالك الأول هو حالة تكوين منفصلة
في `commands.ownerAllowFrom`، ولا يزال تسليم دردشة المجموعات يتبع
قوائم السماح للمجموعات الخاصة بالقناة (على سبيل المثال `groupAllowFrom` أو `groups` أو التجاوزات لكل مجموعة
أو لكل موضوع بحسب القناة).
</Note>

## 2) إقران جهاز Node (iOS/Android/macOS/العُقد بلا واجهة)

تتصل Nodes بـ Gateway بصفتها **أجهزة** مع `role: node`. ينشئ Gateway
طلب إقران جهاز يجب الموافقة عليه.

### الإقران عبر Telegram (موصى به لـ iOS)

إذا كنت تستخدم Plugin `device-pair`، يمكنك إجراء إقران الجهاز لأول مرة بالكامل من Telegram:

1. في Telegram، راسل البوت: `/pair`
2. يرد البوت برسالتين: رسالة تعليمات ورسالة **رمز إعداد** منفصلة (يسهل نسخها/لصقها في Telegram).
3. على هاتفك، افتح تطبيق OpenClaw على iOS ← الإعدادات ← Gateway.
4. الصق رمز الإعداد واتصل.
5. مرة أخرى في Telegram: `/pair pending` (راجع معرّفات الطلبات والدور والنطاقات)، ثم وافق.

رمز الإعداد هو حمولة JSON مشفرة بـ base64 تحتوي على:

- `url`: عنوان URL لـ WebSocket الخاص بـ Gateway (`ws://...` أو `wss://...`)
- `bootstrapToken`: رمز تمهيد قصير العمر لجهاز واحد يُستخدم لمصافحة الإقران الأولية

يحمل رمز التمهيد هذا ملف تعريف تمهيد الإقران المدمج:

- يبقى رمز `node` الأساسي المُسلّم `scopes: []`
- يبقى أي رمز `operator` مُسلّم محدودًا بقائمة سماح التمهيد:
  `operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`
- فحوص النطاق في التمهيد مسبوقة بالدور، وليست مجموعة نطاقات مسطحة واحدة:
  إدخالات نطاق المشغل لا تلبي إلا طلبات المشغل، ويجب على الأدوار غير المشغلة
  أن تظل تطلب النطاقات تحت بادئة دورها الخاصة
- يظل تدوير/إبطال الرموز لاحقًا محدودًا بكل من عقد الدور الموافق عليه للجهاز
  ونطاقات المشغل لجلسة المستدعي

عامل رمز الإعداد ككلمة مرور أثناء صلاحيته.

### الموافقة على جهاز Node

```bash
openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
```

إذا أعاد الجهاز نفسه المحاولة بتفاصيل مصادقة مختلفة (على سبيل المثال دور/نطاقات/مفتاح عام مختلف)،
فسيتم استبدال الطلب المعلق السابق وإنشاء `requestId` جديد.

<Note>
لا يحصل الجهاز المقترن مسبقًا على وصول أوسع بصمت. إذا أعاد الاتصال طالبًا نطاقات أكثر أو دورًا أوسع، يحتفظ OpenClaw بالموافقة الحالية كما هي وينشئ طلب ترقية معلقًا جديدًا. استخدم `openclaw devices list` لمقارنة الوصول الموافق عليه حاليًا مع الوصول المطلوب حديثًا قبل الموافقة.
</Note>

### موافقة تلقائية اختيارية لـ Node حسب CIDR موثوق

يبقى إقران الأجهزة يدويًا افتراضيًا. لشبكات Node المحكومة بإحكام،
يمكنك الاشتراك في الموافقة التلقائية على Node لأول مرة باستخدام CIDR صريحة أو عناوين IP دقيقة:

```json5
{
  gateway: {
    nodes: {
      pairing: {
        autoApproveCidrs: ["192.168.1.0/24"],
      },
    },
  },
}
```

ينطبق هذا فقط على طلبات إقران `role: node` الجديدة من دون
نطاقات مطلوبة. لا يزال عملاء المشغل والمتصفح وواجهة التحكم وWebChat يتطلبون موافقة يدوية.
ولا تزال تغييرات الدور والنطاق والبيانات الوصفية والمفتاح العام تتطلب موافقة يدوية.

### تخزين حالة إقران Node

مخزنة ضمن `~/.openclaw/devices/`:

- `pending.json` (قصير العمر؛ تنتهي صلاحية الطلبات المعلقة)
- `paired.json` (الأجهزة المقترنة + الرموز)

### ملاحظات

- واجهة API القديمة `node.pair.*` ‏(CLI: `openclaw nodes pending|approve|reject|remove|rename`) هي
  مخزن إقران منفصل مملوك لـ Gateway. لا تزال Nodes عبر WS تتطلب إقران الأجهزة.
- سجل الإقران هو مصدر الحقيقة الدائم للأدوار الموافق عليها. تبقى
  رموز الأجهزة النشطة محدودة بمجموعة الأدوار الموافق عليها؛ ولا ينشئ إدخال رمز شارد
  خارج الأدوار الموافق عليها وصولًا جديدًا.

## مستندات ذات صلة

- نموذج الأمان + حقن المطالبات: [الأمان](/ar/gateway/security)
- التحديث بأمان (تشغيل الطبيب): [التحديث](/ar/install/updating)
- تكوينات القنوات:
  - Telegram: [Telegram](/ar/channels/telegram)
  - WhatsApp: [WhatsApp](/ar/channels/whatsapp)
  - Signal: [Signal](/ar/channels/signal)
  - BlueBubbles (iMessage): [BlueBubbles](/ar/channels/bluebubbles)
  - iMessage (قديم): [iMessage](/ar/channels/imessage)
  - Discord: [Discord](/ar/channels/discord)
  - Slack: [Slack](/ar/channels/slack)
