# GitHub CLI โทเคนหมดอายุอัตโนมัติเปิดทดลอง ส่วน clone ผ่าน HTTPS อาจต้องล็อกอินชั่วคราว

> GitHub CLI โทเคนหมดอายุและต่ออายุเองเปิดแบบสมัครใช้ในรุ่น 2.103.0 เมื่อ 21 ต.ค. 2026 โทเคนที่หลุดใช้ไม่ได้ในไม่กี่ชั่วโมง ส่วน clone ผ่าน HTTPS อาจต้องล็อกอิน

- ประเภท: ข่าว · หมวด: Software
- เผยแพร่: 2026-10-22T13:08:00.000Z · อัปเดต: 2026-10-22T13:08:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/software/github-cli-expiring-tokens-git-https-authentication/

## สรุปประเด็นสำคัญ

- GitHub เปิดตัวเลือก **โทเคนหมดอายุที่ต่ออายุอัตโนมัติ** ใน **GitHub CLI 2.103.0** แบบ public preview เมื่อ **21 ตุลาคม 2026** สั่งเปิดด้วย `gh auth login --expiring`
- gh เก็บ access token อายุสั้นคู่กับ refresh token ที่หมุนเปลี่ยน GitHub ระบุว่าโทเคนที่หลุดจะ **ใช้ไม่ได้ภายในไม่กี่ชั่วโมง** แทนที่จะใช้ได้ไม่มีกำหนด และวางแผนให้เป็น **ค่าเริ่มต้น** ของการล็อกอินใหม่ในรุ่นต่อไป
- ใช้ได้บน github.com และ GHE.com ส่วน GitHub Enterprise Server ออกโทเคนแบบนี้ตั้งแต่ **GHES 3.23** และ GitHub แนะนำ **git 2.46** ขึ้นไปคู่กับ `gh auth setup-git`
- สคริปต์ที่เก็บค่า `gh auth token` ไว้ใช้ภายหลังจะพังเมื่อโทเคนหมดอายุ ส่วนโทเคนที่ส่งผ่าน `GH_TOKEN` หรือ `GITHUB_TOKEN` จะไม่ถูกต่ออายุ
- ตั้งแต่ **19 ตุลาคม 2026** GitHub แจ้งว่าช่วงที่ทราฟฟิกผิดปกติอาจบังคับให้ยืนยันตัวตนชั่วคราวเมื่อ clone หรือ fetch repository สาธารณะผ่าน HTTPS แบบไม่ล็อกอิน มีผลกับทุกแผน

GitHub เปิดตัวเลือกโทเคนที่หมดอายุและต่ออายุเองใน GitHub CLI 2.103.0 แบบ public preview เมื่อวันที่ 21 ตุลาคม 2026 ผู้ที่สมัครใช้จะได้ access token อายุสั้นที่ gh ต่ออายุให้เอง ถ้าโทเคนหลุดจะใช้ไม่ได้ภายในไม่กี่ชั่วโมง เรื่อง GitHub CLI โทเคนหมดอายุนี้มาในสัปดาห์เดียวกับที่ GitHub แจ้งว่าการ clone แบบไม่ล็อกอินผ่าน HTTPS อาจต้องยืนยันตัวตนชั่วคราว

ทั้งสองเรื่องกระทบทีม DevOps โดยตรง เพราะ CI และสคริปต์อัตโนมัติจำนวนมากใช้ทั้งโทเคนของ gh และการ clone repository สาธารณะโดยไม่ยืนยันตัวตน

## GitHub CLI โทเคนหมดอายุทำงานอย่างไร

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

![หน้า release ของ GitHub CLI 2.103.0 บน GitHub อธิบาย Expiring, auto-refreshing OAuth tokens (preview) พร้อมคำสั่ง gh auth login --expiring](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/github-cli-expiring-tokens-git-https-authentication/swb-dev-github-cli-2-103-0-release.webp?v=7480cbf2) _(ภาพ: GitHub (ภาพหน้าจอ))_

สรุปวิธีใช้ GitHub CLI โทเคนหมดอายุตามประกาศและ release notes

| เรื่อง | รายละเอียดตามประกาศของ GitHub |
| --- | --- |
| รุ่นที่ต้องใช้ | GitHub CLI 2.103.0 ขึ้นไป |
| เปิดครั้งเดียว | `gh auth login --expiring` |
| เปิดกับทุกการล็อกอิน | `gh config set expiring_credentials enabled` |
| ตรวจสถานะ | `gh auth status` แสดงว่าโทเคนต่ออายุได้หรือไม่และหมดอายุเมื่อไร |
| ใช้กับ git ผ่าน HTTPS | รัน `gh auth setup-git` และใช้ git 2.46 ขึ้นไป เพื่อไม่ให้ git แคชโทเคนเกินอายุ |
| เซิร์ฟเวอร์ที่รองรับ | github.com, GHE.com และ GitHub Enterprise Server 3.23 ขึ้นไป |

ตัวเลือก GitHub CLI โทเคนหมดอายุไม่บังคับและใช้ร่วมกับของเดิมได้ ถ้าไม่เปิด ทุกอย่างทำงานเหมือนเดิม ถ้าเซิร์ฟเวอร์ไม่รองรับ เช่น GitHub Enterprise Server รุ่นก่อน 3.23 gh จะกลับไปใช้โทเคนแบบไม่หมดอายุเอง แต่ GitHub บอกชัดว่าวางแผนให้โทเคนหมดอายุเป็นค่าเริ่มต้นของการล็อกอินใหม่ในรุ่นต่อไป

## สิ่งที่อาจพังเมื่อเปิดใช้ GitHub CLI โทเคนหมดอายุ

GitHub เตือนว่าสิ่งที่ดึงโทเคนครั้งเดียวแล้วนำไปใช้ซ้ำภายหลังจะพัง เช่น สคริปต์หรือส่วนขยายที่รัน `gh auth token` แล้วเก็บผลไว้ หรือคัดลอกโทเคนไปใส่ในเครื่องมืออื่น วิธีที่ถูกคือเรียก `gh auth token` ใหม่ทุกครั้งที่ต้องใช้ ซึ่งจะต่ออายุให้เมื่อจำเป็น release notes ยังระบุว่าโทเคนที่ส่งผ่านตัวแปร `GH_TOKEN` หรือ `GITHUB_TOKEN` จะไม่ถูกต่ออายุ

ทั้ง `gh auth status` และ `gh auth token` จะต่ออายุ access token ให้อัตโนมัติเมื่อจำเป็น ส่วน workflow ที่ต้องพึ่งโทเคนอายุยาว GitHub แนะนำให้รอไปก่อนยังไม่ต้องเปิดใช้ GitHub CLI โทเคนหมดอายุ ขณะที่การ push และ pull ผ่าน HTTPS จะทำงานต่อได้ถ้าตั้งให้ gh เป็น credential helper ของ git

## Clone ผ่าน HTTPS แบบไม่ล็อกอินอาจถูกขอให้ยืนยันตัวตน

อีกประกาศหนึ่งเมื่อ 19 ตุลาคม 2026 ระบุว่า ในช่วงที่มีทราฟฟิกผิดปกติ GitHub อาจบังคับให้ยืนยันตัวตนชั่วคราวสำหรับการ clone และ fetch repository สาธารณะผ่าน HTTPS บางส่วน เพื่อรักษาเสถียรภาพของ github.com คำสั่งที่โดนจะล้มเหลวพร้อมข้อความว่าต้องยืนยันตัวตน มาตรการนี้ใช้กับ repository บน github.com ทุกแผน

![ประกาศ Some Git over HTTPS may temporarily require authentication บน GitHub Changelog วันที่ 19 ตุลาคม 2026](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/github-cli-expiring-tokens-git-https-authentication/swb-dev-github-git-https-temporary-auth.webp?v=8e85e84b) _(ภาพ: GitHub (ภาพหน้าจอ))_

GitHub ย้ำว่านี่ไม่ใช่การบังคับยืนยันตัวตนกับ repository สาธารณะทั่วไป และจำกัดวงให้แคบที่สุดจากสัญญาณของทราฟฟิกผิดปกติ แต่ยอมรับว่าการใช้งานปกติอาจโดนบ้าง เพราะบางครั้งมีสัญญาณร่วมกัน สิ่งที่ไม่ได้รับผลกระทบ ได้แก่ Git ผ่าน HTTPS ที่ยืนยันตัวตนแล้ว Git ผ่าน SSH การ push และการใช้เว็บหรือ API ที่ไม่เกี่ยวข้อง

GitHub แนะนำให้ระบบอัตโนมัติยืนยันตัวตนทุกครั้ง GitHub Actions ใช้ `GITHUB_TOKEN` ที่มีให้อยู่แล้ว ระบบ CI อื่นควรใช้ installation access token ของ GitHub App หรือใช้ personal access token ส่วนงานที่ยืนยันตัวตนไม่ได้ให้ลองใหม่หลังมาตรการยกเลิก

เมื่อมองสองประกาศรวมกัน ทิศทางของ GitHub คือให้การเข้าถึงแบบอัตโนมัติยืนยันตัวตนเสมอ และให้ข้อมูลรับรองมีอายุสั้นลง ทีมที่ยังพึ่งการ clone แบบไม่ล็อกอินหรือโทเคนที่ไม่หมดอายุควรเริ่มปรับตั้งแต่ตอนนี้ ก่อนที่ GitHub CLI โทเคนหมดอายุจะกลายเป็นค่าเริ่มต้นตามแผน

## ผลต่อองค์กรไทยและทีมพัฒนาจาก GitHub CLI โทเคนหมดอายุ

1. **นักพัฒนาเปิด GitHub CLI โทเคนหมดอายุบนเครื่องตัวเองได้เลย** ด้วย `gh auth login --expiring` แล้วรัน `gh auth setup-git` ช่วยลดความเสียหายถ้าเครื่องหรือไฟล์ตั้งค่าหลุด โดยเฉพาะเครื่องที่ติดตั้งเอเจนต์เขียนโค้ดซึ่งอ่านไฟล์ในเครื่องได้
2. **ค้นหาสคริปต์ที่เก็บค่า `gh auth token`** ในเครื่องมือภายใน แล้วเปลี่ยนให้เรียกใหม่ทุกครั้ง ก่อนที่โทเคนหมดอายุจะกลายเป็นค่าเริ่มต้น
3. **องค์กรที่ใช้ GitHub Enterprise Server ในศูนย์ข้อมูลของตัวเอง** ควรใส่ GHES 3.23 ในแผนอัปเกรดหากต้องการใช้ GitHub CLI โทเคนหมดอายุ เพราะรุ่นก่อนหน้าจะยังออกโทเคนแบบไม่หมดอายุ
4. **ให้ CI ทุกตัวที่ clone จาก GitHub ยืนยันตัวตน** เช่น Jenkins หรือ GitLab runner ในองค์กรที่ดึงโค้ดโอเพนซอร์สจาก GitHub ควรใช้โทเคนของ GitHub App แทนการ clone แบบไม่ล็อกอิน ไม่อย่างนั้น build อาจล้มกะทันหันในช่วงที่ GitHub เปิดมาตรการ
5. **อัปเดต git บนเครื่องนักพัฒนาและ runner** เป็นรุ่น 2.46 ขึ้นไปตามคำแนะนำของ GitHub ติดตามข่าวเครื่องมือนักพัฒนาอื่นได้ที่[หมวดการพัฒนาซอฟต์แวร์](/software/development/)

## คำถามที่พบบ่อย

### GitHub CLI โทเคนหมดอายุคืออะไร?

GitHub CLI โทเคนหมดอายุ คือตัวเลือกใหม่ใน GitHub CLI 2.103.0 ที่ให้ gh ล็อกอินด้วย OAuth access token อายุสั้นคู่กับ refresh token ที่หมุนเปลี่ยน gh ต่ออายุโทเคนให้เองเมื่อจำเป็น ผู้ใช้จึงไม่ต้องล็อกอินใหม่ และถ้าโทเคนหลุดออกไปจะใช้ไม่ได้ภายในไม่กี่ชั่วโมง

### เปิดใช้โทเคนหมดอายุใน GitHub CLI อย่างไร?

การเปิดใช้ GitHub CLI โทเคนหมดอายุ ต้องอัปเกรด GitHub CLI เป็นรุ่น 2.103.0 ขึ้นไป แล้วล็อกอินด้วยคำสั่ง gh auth login --expiring หรือสั่ง gh config set expiring_credentials enabled เพื่อใช้กับทุกการล็อกอิน ตรวจสถานะและเวลาหมดอายุได้ด้วย gh auth status และถ้าใช้ git ผ่าน HTTPS ให้รัน gh auth setup-git

### สคริปต์และ CI จะได้รับผลกระทบจากโทเคนหมดอายุอย่างไร?

เมื่อเปิด GitHub CLI โทเคนหมดอายุ สคริปต์หรือส่วนขยายที่รัน gh auth token ครั้งเดียวแล้วเก็บค่าไว้ใช้ภายหลังจะถือโทเคนที่หมดอายุในที่สุด GitHub แนะนำให้เรียก gh auth token ใหม่ทุกครั้งที่ต้องใช้ และให้ workflow ที่ต้องพึ่งโทเคนอายุยาวรอไปก่อนยังไม่ต้องเปิดใช้ ส่วนโทเคนที่ส่งผ่าน GH_TOKEN หรือ GITHUB_TOKEN จะไม่ถูกต่ออายุ

### ทำไม git clone repository สาธารณะจาก GitHub จึงขึ้นว่าต้องยืนยันตัวตน?

GitHub แจ้งเมื่อ 19 ตุลาคม 2026 ว่าช่วงที่มีทราฟฟิกผิดปกติ อาจบังคับให้ยืนยันตัวตนชั่วคราวสำหรับการ clone และ fetch repository สาธารณะผ่าน HTTPS บางส่วนเพื่อรักษาเสถียรภาพของ github.com แก้ได้โดยยืนยันตัวตนแล้วลองใหม่ หรือรอจนมาตรการยกเลิก การใช้ SSH การ push และการทำงานที่ยืนยันตัวตนแล้วไม่ได้รับผลกระทบ


## แหล่งอ้างอิง

- [GitHub CLI: Opt in to expiring, auto-refreshing OAuth tokens](https://github.blog/changelog/2026-10-21-github-cli-opt-in-to-expiring-auto-refreshing-oauth-tokens) — GitHub Changelog
- [GitHub CLI 2.103.0](https://github.com/cli/cli/releases/tag/v2.103.0) — GitHub (cli/cli)
- [Some Git over HTTPS may temporarily require authentication](https://github.blog/changelog/2026-10-19-some-git-over-https-may-temporarily-require-authentication) — GitHub Changelog
