---
read_when:
    - การตั้งค่าการควบคุมการเข้าถึงข้อความส่วนตัว
    - การจับคู่ Node iOS/Android ใหม่
    - การตรวจสอบสถานะความปลอดภัยของ OpenClaw
summary: 'ภาพรวมการจับคู่: อนุมัติว่าใครบ้างที่สามารถส่งข้อความส่วนตัวถึงคุณได้ + โหนดใดบ้างที่สามารถเข้าร่วมได้'
title: การจับคู่
x-i18n:
    generated_at: "2026-04-26T11:24:17Z"
    model: gpt-5.4
    provider: openai
    source_hash: f9d28547baacce638347ce0062e3bc4f194704eb369b4ca45f7158d5e16cee93
    source_path: channels/pairing.md
    workflow: 15
---

“การจับคู่” คือขั้นตอน**การอนุมัติโดยเจ้าของ**อย่างชัดเจนของ OpenClaw  
ใช้ใน 2 กรณี:

1. **การจับคู่ DM** (ใครบ้างที่ได้รับอนุญาตให้คุยกับบอต)
2. **การจับคู่ Node** (อุปกรณ์/โหนดใดบ้างที่ได้รับอนุญาตให้เข้าร่วมเครือข่าย Gateway)

บริบทด้านความปลอดภัย: [Security](/th/gateway/security)

## 1) การจับคู่ DM (การเข้าถึงแชตขาเข้า)

เมื่อกำหนดค่าแชนเนลด้วยนโยบาย DM เป็น `pairing` ผู้ส่งที่ไม่รู้จักจะได้รับรหัสสั้น ๆ และข้อความของพวกเขา**จะไม่ถูกประมวลผล**จนกว่าคุณจะอนุมัติ

นโยบาย DM เริ่มต้นมีเอกสารไว้ที่: [Security](/th/gateway/security)

รหัสการจับคู่:

- 8 อักขระ, ตัวพิมพ์ใหญ่, ไม่มีอักขระที่สับสนได้ง่าย (`0O1I`)
- **หมดอายุภายใน 1 ชั่วโมง** บอตจะส่งข้อความการจับคู่เฉพาะเมื่อมีการสร้างคำขอใหม่เท่านั้น (โดยประมาณคือหนึ่งครั้งต่อชั่วโมงต่อผู้ส่งหนึ่งราย)
- คำขอจับคู่ DM ที่รอดำเนินการถูกจำกัดไว้ที่ค่าเริ่มต้น **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`
- ที่เก็บ allowlist ที่ได้รับการอนุมัติ:
  - บัญชีเริ่มต้น: `<channel>-allowFrom.json`
  - บัญชีที่ไม่ใช่ค่าเริ่มต้น: `<channel>-<accountId>-allowFrom.json`

พฤติกรรมการกำหนดขอบเขตตามบัญชี:

- บัญชีที่ไม่ใช่ค่าเริ่มต้นจะอ่าน/เขียนเฉพาะไฟล์ allowlist ที่อยู่ในขอบเขตของตน
- บัญชีเริ่มต้นจะใช้ไฟล์ allowlist แบบไม่กำหนดขอบเขตที่ผูกกับแชนเนล

ให้ถือว่าสิ่งเหล่านี้เป็นข้อมูลสำคัญ (เพราะเป็นตัวควบคุมการเข้าถึงผู้ช่วยของคุณ)

ข้อสำคัญ: ที่เก็บนี้ใช้สำหรับการเข้าถึง DM เท่านั้น การอนุญาตสำหรับกลุ่มแยกออกจากกัน  
การอนุมัติรหัสการจับคู่ DM ไม่ได้ทำให้ผู้ส่งนั้นสามารถใช้คำสั่งในกลุ่มหรือควบคุมบอตในกลุ่มได้โดยอัตโนมัติ สำหรับการเข้าถึงในกลุ่ม ให้กำหนดค่า allowlist ของกลุ่มในแชนเนลนั้นอย่างชัดเจน (เช่น `groupAllowFrom`, `groups` หรือการตั้งค่าแทนที่รายกลุ่ม/รายหัวข้อขึ้นอยู่กับแชนเนล)

## 2) การจับคู่อุปกรณ์ Node (Node iOS/Android/macOS/headless)

Nodes เชื่อมต่อกับ 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` (ตรวจสอบ request ID, role และ scopes) แล้วจึงอนุมัติ

รหัสตั้งค่าเป็นเพย์โหลด JSON ที่เข้ารหัสแบบ base64 ซึ่งมีข้อมูลดังนี้:

- `url`: URL WebSocket ของ Gateway (`ws://...` หรือ `wss://...`)
- `bootstrapToken`: โทเค็น bootstrap แบบอายุสั้นสำหรับอุปกรณ์เดียว ใช้สำหรับ handshake การจับคู่ครั้งแรก

โทเค็น bootstrap นั้นมีโปรไฟล์ pairing bootstrap ที่มีมาในตัว:

- โทเค็น `node` หลักที่ถูกส่งต่อจะคง `scopes: []`
- โทเค็น `operator` ใด ๆ ที่ถูกส่งต่อจะยังคงถูกจำกัดอยู่ใน bootstrap allowlist:
  `operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`
- การตรวจสอบ bootstrap scope ใช้คำนำหน้าตาม role ไม่ใช่พูล scope แบบแบนรวมเดียว:
  รายการ operator scope จะตอบสนองได้เฉพาะคำขอ operator เท่านั้น และ role ที่ไม่ใช่ operator
  ยังคงต้องขอ scopes ภายใต้คำนำหน้า role ของตนเอง
- การหมุนเวียน/เพิกถอนโทเค็นในภายหลังยังคงถูกจำกัดด้วยทั้งสัญญา role ที่ได้รับการอนุมัติของอุปกรณ์ และ operator scopes ของเซสชันผู้เรียก

ให้ปฏิบัติต่อรหัสตั้งค่านี้เหมือนรหัสผ่านตราบใดที่มันยังใช้ได้

### อนุมัติอุปกรณ์ Node

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

หากอุปกรณ์เดียวกันพยายามอีกครั้งด้วยรายละเอียดการยืนยันตัวตนที่ต่างออกไป (เช่น
role/scopes/public key ต่างกัน) คำขอที่รอดำเนินการก่อนหน้าจะถูกแทนที่ และจะมีการสร้าง `requestId` ใหม่

ข้อสำคัญ: อุปกรณ์ที่จับคู่แล้วจะไม่ได้รับสิทธิ์ที่กว้างขึ้นแบบเงียบ ๆ หากอุปกรณ์นั้น
เชื่อมต่อใหม่โดยขอ scopes เพิ่มเติมหรือ role ที่กว้างขึ้น OpenClaw จะคงการอนุมัติเดิมไว้ตามเดิม และสร้างคำขออัปเกรดที่รอดำเนินการรายการใหม่ ให้ใช้
`openclaw devices list` เพื่อเปรียบเทียบสิทธิ์ที่อนุมัติอยู่ในปัจจุบันกับสิทธิ์ที่ร้องขอใหม่
ก่อนที่คุณจะอนุมัติ

### การอนุมัติอัตโนมัติสำหรับ Node ที่อยู่ใน CIDR ที่เชื่อถือได้แบบเลือกใช้

การจับคู่อุปกรณ์ยังคงเป็นแบบทำด้วยตนเองโดยค่าเริ่มต้น สำหรับเครือข่าย Node ที่ควบคุมอย่างเข้มงวด
คุณสามารถเลือกใช้การอนุมัติอัตโนมัติสำหรับ Node ครั้งแรกด้วย CIDR หรือ IP แบบระบุชัดเจนได้:

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

สิ่งนี้ใช้ได้เฉพาะกับคำขอจับคู่ `role: node` ใหม่ที่ไม่มีการร้องขอ
scopes เท่านั้น ไคลเอนต์ Operator, browser, Control UI และ WebChat ยังคงต้องได้รับการอนุมัติ
ด้วยตนเอง การเปลี่ยนแปลง role, scope, metadata และ public key ยังคงต้องได้รับการอนุมัติ
ด้วยตนเอง

### การจัดเก็บสถานะการจับคู่ Node

จัดเก็บไว้ใต้ `~/.openclaw/devices/`:

- `pending.json` (อายุสั้น; คำขอที่รอดำเนินการจะหมดอายุ)
- `paired.json` (อุปกรณ์ที่จับคู่แล้ว + โทเค็น)

### หมายเหตุ

- API รุ่นเก่า `node.pair.*` (CLI: `openclaw nodes pending|approve|reject|rename`) เป็น
  ที่เก็บการจับคู่แยกต่างหากที่ Gateway เป็นเจ้าของ แต่ WS nodes ยังคงต้องใช้การจับคู่อุปกรณ์
- ระเบียนการจับคู่คือแหล่งข้อมูลจริงแบบคงทนสำหรับ role ที่ได้รับอนุมัติ โทเค็นอุปกรณ์ที่ยัง active
  จะยังคงถูกจำกัดอยู่ในชุด role ที่ได้รับการอนุมัตินั้น; รายการโทเค็นที่หลุดออกมานอก role ที่อนุมัติ
  จะไม่ก่อให้เกิดสิทธิ์เข้าถึงใหม่

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

- โมเดลความปลอดภัย + prompt injection: [Security](/th/gateway/security)
- การอัปเดตอย่างปลอดภัย (รัน doctor): [Updating](/th/install/updating)
- การกำหนดค่าแชนเนล:
  - Telegram: [Telegram](/th/channels/telegram)
  - WhatsApp: [WhatsApp](/th/channels/whatsapp)
  - Signal: [Signal](/th/channels/signal)
  - BlueBubbles (iMessage): [BlueBubbles](/th/channels/bluebubbles)
  - iMessage (legacy): [iMessage](/th/channels/imessage)
  - Discord: [Discord](/th/channels/discord)
  - Slack: [Slack](/th/channels/slack)
