CLI commands

الأجهزة

openclaw devices

إدارة طلبات إقران الأجهزة والرموز المميزة المقيّدة بنطاق الجهاز.

الخيارات الشائعة

  • --url <url>: عنوان URL لاتصال WebSocket الخاص بـ Gateway (القيمة الافتراضية هي gateway.remote.url عند تهيئته)
  • --token <token>: الرمز المميز لـ Gateway (إذا كان مطلوبًا)
  • --password <password>: كلمة مرور Gateway (مصادقة بكلمة المرور)
  • --timeout <ms>: مهلة RPC
  • --json: إخراج JSON (موصى به للبرمجة النصية)

الأوامر

openclaw devices list

عرض طلبات الإقران المعلّقة والأجهزة المقترنة.

bash
openclaw devices listopenclaw devices list --json

بالنسبة إلى طلب معلّق على جهاز مقترن بالفعل، يعرض الإخراج الوصول المطلوب بجوار الوصول الحالي المعتمد للجهاز، بحيث تظهر ترقيات النطاق أو الدور بدلًا من أن تبدو كأنها عملية إقران مفقودة.

تستخدم أسماء العرض للأجهزة المقترنة ترتيب الأولوية التالي: تسمية المشغّل (operatorLabel من devices rename)، ثم displayName الخاص بالعميل، ثم clientId، ثم deviceId.

openclaw devices approve [requestId] [--latest]

الموافقة على طلب إقران معلّق باستخدام requestId المطابق تمامًا. يؤدي حذف requestId أو تمرير --latest إلى معاينة أحدث طلب معلّق فقط ثم الخروج (بالرمز 1)؛ أعد تشغيل الأمر باستخدام معرّف الطلب الدقيق للموافقة.

bash
openclaw devices approveopenclaw devices approve <requestId>openclaw devices approve --latest

سلوك الموافقة:

  • إذا كان الجهاز مقترنًا بالفعل وطلب نطاقات أوسع أو دورًا آخر، يحتفظ OpenClaw بالموافقة الحالية وينشئ طلب ترقية معلّقًا جديدًا. قارن Requested بـ Approved في openclaw devices list، أو عاين الطلب باستخدام --latest، قبل الموافقة.
  • تتطلب الموافقة على دور node أو أي دور آخر غير المشغّل النطاق operator.admin. يكفي operator.pairing للموافقة على أجهزة المشغّلين، ولكن فقط عندما تبقى نطاقات المشغّل المطلوبة ضمن نطاقات المستدعي نفسه. راجع نطاقات المشغّل.
  • إذا تمت تهيئة gateway.nodes.pairing.autoApproveCidrs، فقد تتم الموافقة تلقائيًا على طلبات role: node لأول مرة الواردة من عناوين IP للعملاء المطابقة قبل ظهورها في هذه القائمة. تكون هذه الميزة معطّلة افتراضيًا، ولا تنطبق مطلقًا على عملاء المشغّل أو المتصفح أو طلبات الترقية.
  • يوافق gateway.nodes.pairing.sshVerify (المفعّل افتراضيًا) تلقائيًا على طلبات role: node لأول مرة عندما يتحقق Gateway من مفتاح الجهاز عبر SSH إلى مضيف Node. لذلك قد تتحول الطلبات إلى حالة الموافقة بعد وقت قصير من ظهورها. عيّن sshVerify: false لتعطيل التحقق عبر SSH؛ وهذا مستقل عن autoApproveCidrs، لذا ألغِ تعيينه أيضًا لفرض الإقران اليدوي فقط.

openclaw devices reject <requestId>

رفض طلب إقران جهاز معلّق.

bash
openclaw devices reject <requestId>

openclaw devices remove <deviceId>

إزالة إدخال جهاز مقترن واحد.

bash
openclaw devices remove <deviceId>openclaw devices remove <deviceId> --json

يمكن للمستدعي الذي تمت مصادقته باستخدام رمز مميز لجهاز مقترن إزالة إدخال جهازه الخاص فقط. تتطلب إزالة جهاز آخر النطاق operator.admin.

openclaw devices rename --device <id> --name <label>

تعيين تسمية مشغّل لجهاز مقترن. التسميات هي حالة محفوظة من جانب المالك: تبقى بعد إصلاحات الإقران وإعادة الموافقة على الأدوار، ولا تغيّر deviceId الثابت.

bash
openclaw devices rename --device <deviceId> --name "Kitchen Mac"openclaw devices rename --device <deviceId> --name "Kitchen Mac" --json
  • الخيار --name مطلوب، وتُزال المسافات المحيطة بقيمته، ويجب ألا يكون فارغًا، ويقتصر على 64 محرفًا.
  • تفضّل واجهات العرض (قائمة CLI، وقائمة أجهزة واجهة التحكم) تسمية المشغّل على اسم العرض الذي يبلّغ عنه العميل.
  • يمكن لمستدعٍ غير إداري يستخدم جهازًا مقترنًا إعادة تسمية جهازه الخاص فقط. تتطلب إعادة تسمية جهاز آخر النطاق operator.admin.

openclaw devices clear --yes [--pending]

مسح الأجهزة المقترنة دفعة واحدة. يتطلب ذلك --yes.

bash
openclaw devices clear --yesopenclaw devices clear --yes --pendingopenclaw devices clear --yes --pending --json

يرفض --pending أيضًا جميع طلبات الإقران المعلّقة.

openclaw devices rotate --device <id> --role <role> [--scope <scope...>]

تدوير رمز مميز لجهاز خاص بدور معيّن، مع تحديث نطاقاته اختياريًا.

bash
openclaw devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write
  • يجب أن يكون الدور المستهدف موجودًا بالفعل في عقد الإقران المعتمد لذلك الجهاز؛ لا يمكن للتدوير إصدار دور جديد غير معتمد.
  • يؤدي حذف --scope إلى إعادة استخدام النطاقات المعتمدة المخزنة مؤقتًا للرمز المميز المخزّن عند عمليات إعادة الاتصال اللاحقة. يؤدي تمرير قيم --scope صريحة إلى استبدال مجموعة النطاقات المخزنة لعمليات إعادة الاتصال المستقبلية باستخدام الرمز المميز المخزّن مؤقتًا.
  • يمكن لمستدعٍ غير إداري يستخدم جهازًا مقترنًا تدوير الرمز المميز لجهازه الخاص فقط، ويجب أن تبقى مجموعة النطاقات المستهدفة ضمن نطاقات المشغّل الخاصة بالمستدعي؛ ولا يمكن للتدوير إصدار رمز مميز أوسع مما يملكه المستدعي بالفعل أو الاحتفاظ به.

يُرجع بيانات التدوير الوصفية بتنسيق JSON. إذا دوّر المستدعي رمزه المميز الخاص أثناء مصادقته باستخدام رمز ذلك الجهاز، تتضمن الاستجابة الرمز البديل كي يتمكن العميل من الاحتفاظ به قبل إعادة الاتصال. لا تعرض عمليات التدوير المشتركة أو الإدارية رمز حامل الصلاحية مطلقًا.

openclaw devices revoke --device <id> --role <role>

إبطال رمز مميز لجهاز خاص بدور معيّن.

bash
openclaw devices revoke --device <deviceId> --role node

يمكن لمستدعٍ غير إداري يستخدم جهازًا مقترنًا إبطال الرمز المميز لجهازه الخاص فقط. يتطلب إبطال رمز جهاز آخر النطاق operator.admin. يجب أيضًا أن تكون مجموعة النطاقات المستهدفة ضمن نطاقات المشغّل الخاصة بالمستدعي؛ ولا يمكن للمستدعين الذين يملكون صلاحية الإقران فقط إبطال الرموز المميزة الإدارية أو رموز مشغّل الكتابة.

ملاحظات

  • تتطلب هذه الأوامر النطاق operator.pairing (أو operator.admin). تتطلب أدوار الأجهزة غير المشغّلة دائمًا operator.admin؛ راجع نطاقات المشغّل.
  • يظل تدوير الرموز المميزة وإبطالها ضمن مجموعة أدوار الإقران المعتمدة للجهاز وخط أساس النطاقات. لا يمنح إدخال رمز مميز متروك في ذاكرة التخزين المؤقت هدفًا لإدارة الرموز المميزة.
  • بالنسبة إلى جلسات الرموز المميزة للأجهزة المقترنة، تقتصر إدارة الأجهزة الأخرى (remove وrename وrotate وrevoke) على الجهاز نفسه ما لم يكن المستدعي يملك operator.admin.
  • يُرجع تدوير الرمز المميز رمزًا جديدًا (حساسًا) — عامله بوصفه سرًا.
  • إذا لم يكن نطاق الإقران متاحًا عبر local loopback ولم يُمرّر --url صراحةً، فيمكن للأمرين list وapprove الرجوع إلى حالة الإقران المحلية.

قائمة التحقق لاسترداد انحراف الرمز المميز

استخدم هذه الخطوات عندما تستمر واجهة التحكم أو العملاء الآخرون في الفشل بسبب AUTH_TOKEN_MISMATCH أو AUTH_DEVICE_TOKEN_MISMATCH أو AUTH_SCOPE_MISMATCH.

  1. تأكّد من المصدر الحالي للرمز المميز الخاص بـ Gateway:

    bash
    openclaw config get gateway.auth.token
  2. اعرض الأجهزة المقترنة وحدّد معرّف الجهاز المتأثر:

    bash
    openclaw devices list
  3. دوّر رمز المشغّل للجهاز المتأثر:

    bash
    openclaw devices rotate --device <deviceId> --role operator
  4. إذا لم يكن التدوير كافيًا، فأزل الإقران القديم ووافق عليه مجددًا:

    bash
    openclaw devices remove <deviceId>openclaw devices listopenclaw devices approve <requestId>
  5. أعد محاولة اتصال العميل باستخدام الرمز المميز المشترك الحالي أو كلمة المرور الحالية.

ملاحظات:

  • ترتيب أولوية المصادقة المعتاد عند إعادة الاتصال: الرمز المميز المشترك أو كلمة المرور الصريحان أولًا، ثم deviceToken الصريح، ثم رمز الجهاز المخزّن، ثم رمز التمهيد.
  • يمكن لاسترداد AUTH_TOKEN_MISMATCH الموثوق أن يرسل مؤقتًا الرمز المميز المشترك ورمز الجهاز المخزّن معًا لمحاولة إعادة واحدة محدودة.
  • يعني AUTH_SCOPE_MISMATCH أن رمز الجهاز قد تم التعرّف عليه، لكنه لا يحمل مجموعة النطاقات المطلوبة؛ أصلح عقد الموافقة على الإقران والنطاقات قبل تغيير مصادقة Gateway المشتركة.

ذو صلة:

موافقة التشغيل الأول لـ Paperclip / openclaw_gateway

تمر وكلاء Paperclip المتصلون عبر محوّل openclaw_gateway بموافقة إقران الجهاز عند التشغيل الأول نفسها التي يمر بها أي عميل جديد آخر. إذا أبلغ Paperclip عن openclaw_gateway_pairing_required، فوافق على الجهاز المعلّق وأعد المحاولة.

bash
openclaw devices approve --latest

تعرض المعاينة أمر openclaw devices approve <requestId> الدقيق؛ تحقّق من التفاصيل، ثم أعد تشغيل ذلك الأمر باستخدام معرّف الطلب للموافقة عليه. بالنسبة إلى Gateway بعيد أو بيانات اعتماد صريحة، مرّر الخيارات نفسها أثناء المعاينة والموافقة:

bash
openclaw devices approve --latest --url <gateway-ws-url> --token <gateway-token>

لتجنّب إعادة الموافقة بعد كل عملية إعادة تشغيل، هيّئ قيمة adapterConfig.devicePrivateKeyPem دائمة في Paperclip بدلًا من السماح له بإنشاء هوية جهاز مؤقتة جديدة في كل تشغيل:

json
{  "adapterConfig": {    "devicePrivateKeyPem": "<ed25519-private-key-pkcs8-pem>"  }}

إذا استمر فشل الموافقة، شغّل openclaw devices list أولًا للتأكد من وجود طلب معلّق.

ذو صلة

Was this useful?
On this page

On this page