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

# الاقتران

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

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

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

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

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

سياسات الرسائل المباشرة الافتراضية موثقة في: [الأمان](/ar/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) اقتران أجهزة Node (عُقد iOS/Android/macOS/بدون واجهة)

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

### الاقتران عبر 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 الخاص بـ Gateway (`ws://...` أو `wss://...`)
- `bootstrapToken`: رمز bootstrap قصير العمر لجهاز واحد يُستخدم في مصافحة الاقتران الأولية

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

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

تعامل مع رمز الإعداد مثل كلمة مرور طالما كان صالحًا.

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

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

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

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

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

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

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

### ملاحظات

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

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

- نموذج الأمان + حقن المطالبات: [الأمان](/ar/gateway/security)
- التحديث بأمان (شغّل doctor): [التحديث](/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)
