---
read_when:
    - عند إعداد التحكم في الوصول إلى الرسائل المباشرة
    - عند إقران عقدة iOS/Android جديدة
    - عند مراجعة الوضع الأمني لـ OpenClaw
summary: 'نظرة عامة على الاقتران: الموافقة على من يمكنه مراسلتك مباشرة + أي العقد يمكنها الانضمام'
title: الاقتران
x-i18n:
    generated_at: "2026-04-05T12:35:55Z"
    model: gpt-5.4
    provider: openai
    source_hash: 2bd99240b3530def23c05a26915d07cf8b730565c2822c6338437f8fb3f285c9
    source_path: channels/pairing.md
    workflow: 15
---

# الاقتران

"الاقتران" هو خطوة **موافقة المالك** الصريحة في OpenClaw.
ويُستخدم في موضعين:

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

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

## 1) اقتران الرسائل المباشرة (الوصول إلى الدردشة الواردة)

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

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

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

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

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

```bash
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`

سلوك نطاق الحساب:

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

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

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

## 2) اقتران أجهزة العقد (عقد iOS/Android/macOS/headless)

تتصل العقد بالبوابة كأجهزة ذات `role: node`. وتنشئ البوابة طلب اقتران جهاز يجب الموافقة عليه.

### الإقران عبر Telegram (مستحسن لـ iOS)

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

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

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

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

يحمل رمز bootstrap هذا ملف تعريف bootstrap المضمّن الخاص بالاقتران:

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

تعامل مع رمز الإعداد كما تتعامل مع كلمة مرور طوال مدة صلاحيته.

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

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

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

### تخزين حالة اقتران العقدة

تُخزَّن تحت `~/.openclaw/devices/`:

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

### ملاحظات

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

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

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