---
read_when:
    - คุณกำลังอนุมัติคำขอจับคู่อุปกรณ์
    - คุณต้องหมุนเวียนหรือเพิกถอนโทเค็นของอุปกรณ์
summary: ข้อมูลอ้างอิง CLI สำหรับ `openclaw devices` (การจับคู่อุปกรณ์ + การหมุนเวียน/เพิกถอนโทเค็น)
title: อุปกรณ์
x-i18n:
    generated_at: "2026-06-27T17:20:20Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 08d6945af4fa2403a97dfec94af7bbd0dc746efe90d3e5b4c9f5c5d6d27d70a4
    source_path: cli/devices.md
    workflow: 16
---

# `openclaw devices`

จัดการคำขอจับคู่อุปกรณ์และโทเค็นที่มีขอบเขตตามอุปกรณ์

## คำสั่ง

### `openclaw devices list`

แสดงรายการคำขอจับคู่ที่รอดำเนินการและอุปกรณ์ที่จับคู่แล้ว

```
openclaw devices list
openclaw devices list --json
```

เอาต์พุตคำขอที่รอดำเนินการจะแสดงสิทธิ์เข้าถึงที่ร้องขอไว้ข้างสิทธิ์เข้าถึงปัจจุบันที่อนุมัติแล้วของอุปกรณ์ เมื่ออุปกรณ์นั้นถูกจับคู่แล้ว วิธีนี้ทำให้การอัปเกรดขอบเขต/บทบาทชัดเจน แทนที่จะดูเหมือนว่าการจับคู่สูญหายไป

### `openclaw devices remove <deviceId>`

ลบรายการอุปกรณ์ที่จับคู่แล้วหนึ่งรายการ

เมื่อคุณยืนยันตัวตนด้วยโทเค็นของอุปกรณ์ที่จับคู่แล้ว ผู้เรียกที่ไม่ใช่แอดมินสามารถลบได้เฉพาะรายการอุปกรณ์ของ **ตนเอง** เท่านั้น การลบอุปกรณ์อื่นต้องใช้ `operator.admin`

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

### `openclaw devices clear --yes [--pending]`

ล้างอุปกรณ์ที่จับคู่แล้วแบบเป็นกลุ่ม

```
openclaw devices clear --yes
openclaw devices clear --yes --pending
openclaw devices clear --yes --pending --json
```

### `openclaw devices approve [requestId] [--latest]`

อนุมัติคำขอจับคู่อุปกรณ์ที่รอดำเนินการด้วย `requestId` ที่ตรงกัน หากละ `requestId` หรือส่ง `--latest` OpenClaw จะพิมพ์เฉพาะคำขอที่รอดำเนินการซึ่งเลือกไว้แล้วออกจากโปรแกรม ให้รันการอนุมัติอีกครั้งด้วย ID คำขอที่ตรงกันหลังจากตรวจสอบรายละเอียดแล้ว

<Note>
หากอุปกรณ์ลองจับคู่อีกครั้งโดยมีรายละเอียดการยืนยันตัวตนเปลี่ยนไป (บทบาท ขอบเขต หรือกุญแจสาธารณะ) OpenClaw จะแทนที่รายการที่รอดำเนินการก่อนหน้าและออก `requestId` ใหม่ รัน `openclaw devices list` ก่อนอนุมัติทันทีเพื่อใช้ ID ปัจจุบัน
</Note>

หากอุปกรณ์ถูกจับคู่แล้วและร้องขอขอบเขตที่กว้างขึ้นหรือบทบาทที่กว้างขึ้น OpenClaw จะคงการอนุมัติเดิมไว้และสร้างคำขออัปเกรดใหม่ที่รอดำเนินการ ตรวจสอบคอลัมน์ `Requested` เทียบกับ `Approved` ใน `openclaw devices list` หรือใช้ `openclaw devices approve --latest` เพื่อดูตัวอย่างการอัปเกรดที่ตรงกันก่อนอนุมัติ

หาก Gateway ถูกกำหนดค่าอย่างชัดเจนด้วย `gateway.nodes.pairing.autoApproveCidrs` คำขอ `role: node` ครั้งแรกจาก IP ไคลเอนต์ที่ตรงกันสามารถได้รับการอนุมัติก่อนที่จะปรากฏในรายการนี้ นโยบายนี้ปิดใช้งานเป็นค่าเริ่มต้น และไม่ใช้กับไคลเอนต์ operator/เบราว์เซอร์หรือคำขออัปเกรด

การอนุมัติบทบาทอุปกรณ์แบบ node หรือบทบาทที่ไม่ใช่ operator อื่น ๆ ต้องใช้ `operator.admin` ส่วน `operator.pairing` เพียงพอสำหรับการอนุมัติอุปกรณ์ operator เท่านั้นเมื่อขอบเขต operator ที่ร้องขอยังคงอยู่ภายในขอบเขตของผู้เรียกเอง ดู [ขอบเขต Operator](/th/gateway/operator-scopes) สำหรับการตรวจสอบตอนอนุมัติ

```
openclaw devices approve
openclaw devices approve <requestId>
openclaw devices approve --latest
```

## การอนุมัติครั้งแรกของ Paperclip / `openclaw_gateway`

เมื่อเอเจนต์ Paperclip ใหม่เชื่อมต่อผ่านอะแดปเตอร์ `openclaw_gateway` เป็นครั้งแรก Gateway อาจต้องการการอนุมัติจับคู่อุปกรณ์แบบครั้งเดียวก่อนที่การรันจะสำเร็จได้ หาก Paperclip รายงาน `openclaw_gateway_pairing_required` ให้อนุมัติอุปกรณ์ที่รอดำเนินการแล้วลองใหม่

สำหรับ Gateway แบบโลคัล ให้ดูตัวอย่างคำขอล่าสุดที่รอดำเนินการ:

```bash
openclaw devices approve --latest
```

ตัวอย่างจะแสดงคำสั่ง `openclaw devices approve <requestId>` ที่ตรงกัน ตรวจสอบรายละเอียดคำขอ จากนั้นรันคำสั่งนั้นอีกครั้งพร้อม ID คำขอเพื่ออนุมัติ

สำหรับ Gateway ระยะไกลหรือข้อมูลรับรองที่ระบุชัดเจน ให้ส่งตัวเลือกเดียวกันระหว่างดูตัวอย่างและอนุมัติ:

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

เพื่อหลีกเลี่ยงการอนุมัติซ้ำหลังรีสตาร์ต ให้เก็บกุญแจอุปกรณ์แบบถาวรไว้ในการกำหนดค่าอะแดปเตอร์ Paperclip แทนการสร้างตัวตนชั่วคราวใหม่ทุกครั้งที่รัน:

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

หากการอนุมัติยังล้มเหลว ให้รัน `openclaw devices list` ก่อนเพื่อยืนยันว่ามีคำขอที่รอดำเนินการอยู่

### `openclaw devices reject <requestId>`

ปฏิเสธคำขอจับคู่อุปกรณ์ที่รอดำเนินการ

```
openclaw devices reject <requestId>
```

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

หมุนเวียนโทเค็นอุปกรณ์สำหรับบทบาทที่ระบุ (เลือกอัปเดตขอบเขตได้)
บทบาทเป้าหมายต้องมีอยู่แล้วในสัญญาการจับคู่ที่อนุมัติแล้วของอุปกรณ์นั้น การหมุนเวียนไม่สามารถสร้างบทบาทใหม่ที่ยังไม่อนุมัติได้
หากคุณละ `--scope` การเชื่อมต่อใหม่ภายหลังด้วยโทเค็นที่หมุนเวียนและจัดเก็บไว้จะใช้ขอบเขตที่อนุมัติแล้วซึ่งแคชไว้ของโทเค็นนั้นซ้ำ หากคุณส่งค่า `--scope` อย่างชัดเจน ค่าเหล่านั้นจะกลายเป็นชุดขอบเขตที่จัดเก็บไว้สำหรับการเชื่อมต่อใหม่ด้วยโทเค็นที่แคชไว้ในอนาคต
ผู้เรียกที่เป็นอุปกรณ์ที่จับคู่แล้วและไม่ใช่แอดมินสามารถหมุนเวียนได้เฉพาะโทเค็นอุปกรณ์ของ **ตนเอง** เท่านั้น
ชุดขอบเขตโทเค็นเป้าหมายต้องยังคงอยู่ภายในขอบเขต operator ของเซสชันผู้เรียกเอง การหมุนเวียนไม่สามารถสร้างหรือคงโทเค็น operator ที่กว้างกว่าที่ผู้เรียกมีอยู่แล้วได้

```
openclaw devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write
```

ส่งคืนเมตาดาต้าการหมุนเวียนเป็น JSON หากผู้เรียกกำลังหมุนเวียนโทเค็นของตนเองขณะยืนยันตัวตนด้วยโทเค็นอุปกรณ์นั้น การตอบกลับจะรวมโทเค็นทดแทนด้วย เพื่อให้ไคลเอนต์สามารถบันทึกไว้ก่อนเชื่อมต่อใหม่ การหมุนเวียนแบบแชร์/แอดมินจะไม่สะท้อน bearer token กลับมา

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

เพิกถอนโทเค็นอุปกรณ์สำหรับบทบาทที่ระบุ

ผู้เรียกที่เป็นอุปกรณ์ที่จับคู่แล้วและไม่ใช่แอดมินสามารถเพิกถอนได้เฉพาะโทเค็นอุปกรณ์ของ **ตนเอง** เท่านั้น
การเพิกถอนโทเค็นของอุปกรณ์อื่นต้องใช้ `operator.admin`
ชุดขอบเขตโทเค็นเป้าหมายต้องพอดีกับขอบเขต operator ของเซสชันผู้เรียกเองด้วย ผู้เรียกที่มีเฉพาะการจับคู่ไม่สามารถเพิกถอนโทเค็น operator ระดับ admin/write ได้

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

ส่งคืนผลการเพิกถอนเป็น JSON

## ตัวเลือกทั่วไป

- `--url <url>`: URL WebSocket ของ Gateway (ค่าเริ่มต้นเป็น `gateway.remote.url` เมื่อกำหนดค่าไว้)
- `--token <token>`: โทเค็น Gateway (หากจำเป็น)
- `--password <password>`: รหัสผ่าน Gateway (การยืนยันตัวตนด้วยรหัสผ่าน)
- `--timeout <ms>`: ระยะหมดเวลา RPC
- `--json`: เอาต์พุต JSON (แนะนำสำหรับสคริปต์)

<Warning>
เมื่อคุณตั้งค่า `--url` CLI จะไม่ย้อนกลับไปใช้ข้อมูลรับรองจากการกำหนดค่าหรือสภาพแวดล้อม ส่ง `--token` หรือ `--password` อย่างชัดเจน การไม่มีข้อมูลรับรองที่ระบุชัดเจนถือเป็นข้อผิดพลาด
</Warning>

## หมายเหตุ

- การหมุนเวียนโทเค็นจะส่งคืนโทเค็นใหม่ (ข้อมูลอ่อนไหว) ให้ปฏิบัติกับมันเหมือนความลับ
- คำสั่งเหล่านี้ต้องใช้ขอบเขต `operator.pairing` (หรือ `operator.admin`) การอนุมัติบางรายการยังต้องให้ผู้เรียกมีขอบเขต operator ที่อุปกรณ์เป้าหมายจะสร้างหรือสืบทอดด้วย บทบาทอุปกรณ์ที่ไม่ใช่ operator ต้องใช้ `operator.admin`; ดู [ขอบเขต Operator](/th/gateway/operator-scopes)
- `gateway.nodes.pairing.autoApproveCidrs` เป็นนโยบาย Gateway แบบเลือกใช้เองสำหรับการจับคู่อุปกรณ์ node ใหม่เท่านั้น และไม่เปลี่ยนอำนาจอนุมัติของ CLI
- การหมุนเวียนและเพิกถอนโทเค็นจะยังอยู่ภายในชุดบทบาทการจับคู่ที่อนุมัติแล้วและฐานขอบเขตที่อนุมัติแล้วสำหรับอุปกรณ์นั้น รายการโทเค็นที่แคชไว้แบบหลงเหลือไม่ได้ให้สิทธิ์เป็นเป้าหมายการจัดการโทเค็น
- สำหรับเซสชันโทเค็นอุปกรณ์ที่จับคู่แล้ว การจัดการข้ามอุปกรณ์ทำได้เฉพาะแอดมินเท่านั้น: `remove`, `rotate` และ `revoke` ทำได้เฉพาะของตนเอง เว้นแต่ผู้เรียกจะมี `operator.admin`
- การเปลี่ยนแปลงโทเค็นยังถูกจำกัดตามขอบเขตของผู้เรียก: เซสชันที่มีเฉพาะการจับคู่ไม่สามารถหมุนเวียนหรือเพิกถอนโทเค็นที่ปัจจุบันมี `operator.admin` หรือ `operator.write`
- `devices clear` ถูกกันไว้โดยตั้งใจด้วย `--yes`
- หากขอบเขตการจับคู่ไม่พร้อมใช้งานบน local loopback (และไม่ได้ส่ง `--url` อย่างชัดเจน) list/approve สามารถใช้ทางเลือกสำรองการจับคู่แบบโลคัลได้
- `devices approve` ต้องใช้ ID คำขอที่ชัดเจนก่อนสร้างโทเค็น การละ `requestId` หรือส่ง `--latest` จะเป็นเพียงการดูตัวอย่างคำขอใหม่ล่าสุดที่รอดำเนินการเท่านั้น

## เช็กลิสต์กู้คืนโทเค็นที่คลาดเคลื่อน

ใช้สิ่งนี้เมื่อ Control UI หรือไคลเอนต์อื่นยังล้มเหลวด้วย `AUTH_TOKEN_MISMATCH`, `AUTH_DEVICE_TOKEN_MISMATCH` หรือ `AUTH_SCOPE_MISMATCH`

1. ยืนยันแหล่งที่มาของโทเค็น Gateway ปัจจุบัน:

```bash
openclaw config get gateway.auth.token
```

2. แสดงรายการอุปกรณ์ที่จับคู่แล้วและระบุ ID อุปกรณ์ที่ได้รับผลกระทบ:

```bash
openclaw devices list
```

3. หมุนเวียนโทเค็น operator สำหรับอุปกรณ์ที่ได้รับผลกระทบ:

```bash
openclaw devices rotate --device <deviceId> --role operator
```

4. หากการหมุนเวียนยังไม่พอ ให้ลบการจับคู่เก่าและอนุมัติอีกครั้ง:

```bash
openclaw devices remove <deviceId>
openclaw devices list
openclaw devices approve <requestId>
```

5. ลองเชื่อมต่อไคลเอนต์อีกครั้งด้วยโทเค็น/รหัสผ่านแบบแชร์ปัจจุบัน

หมายเหตุ:

- ลำดับความสำคัญของการยืนยันตัวตนเมื่อเชื่อมต่อใหม่ตามปกติคือ โทเค็น/รหัสผ่านแบบแชร์ที่ระบุชัดเจนก่อน จากนั้น `deviceToken` ที่ระบุชัดเจน จากนั้นโทเค็นอุปกรณ์ที่จัดเก็บไว้ จากนั้นโทเค็น bootstrap
- การกู้คืน `AUTH_TOKEN_MISMATCH` ที่เชื่อถือได้สามารถส่งทั้งโทเค็นแบบแชร์และโทเค็นอุปกรณ์ที่จัดเก็บไว้ร่วมกันชั่วคราวสำหรับการลองซ้ำที่มีขอบเขตเพียงครั้งเดียว
- `AUTH_SCOPE_MISMATCH` หมายความว่าโทเค็นอุปกรณ์ได้รับการรู้จักแล้ว แต่ไม่มีชุดขอบเขตที่ร้องขอ ให้แก้สัญญาการอนุมัติการจับคู่/ขอบเขตก่อนเปลี่ยนการยืนยันตัวตน Gateway แบบแชร์

ที่เกี่ยวข้อง:

- [การแก้ปัญหาการยืนยันตัวตนของ Dashboard](/th/web/dashboard#if-you-see-unauthorized-1008)
- [การแก้ปัญหา Gateway](/th/gateway/troubleshooting#dashboard-control-ui-connectivity)

## ที่เกี่ยวข้อง

- [ข้อมูลอ้างอิง CLI](/th/cli)
- [Nodes](/th/nodes)
