Mục lụcChạm để xem nhanh các phần+
- Tính năng public preview, cần GitHub CLI từ 2.103.0 và chủ động chọn khi đăng nhập.
- Access token có thời hạn; refresh token vẫn cần bảo vệ và thu hồi khi có sự cố.
- Script lưu cố định token có thể lỗi khi hết hạn; không in hoặc chép bí mật vào log để kiểm tra.
GitHub thay đổi lựa chọn đăng nhập cho công cụ dòng lệnh
GitHub công bố ngày 21/10/2026 public preview cho OAuth credential tự hết hạn và tự làm mới trong GitHub CLI 2.103.0. Đội phát triển dùng gh để quản lý repository hoặc hỗ trợ quy trình nội bộ có thể chọn cơ chế này khi đăng nhập. Việc cần làm trước là rà các script và extension đang lấy một token rồi dùng lại lâu dài, vì chúng có thể giữ giá trị đã hết hạn.
Access token là bí mật cho phép ứng dụng gọi dịch vụ thay người dùng; OAuth là cơ chế người dùng chấp thuận quyền cho ứng dụng. Theo GitHub, lựa chọn mới lưu access token ngắn hạn cùng refresh token luân chuyển, rồi tự đổi lấy access token mới khi cần. Mục tiêu là thu ngắn thời gian một access token bị lộ còn dùng được, thay vì tồn tại vô thời hạn.
Tính năng vẫn chủ động chọn, chưa tự thay mọi lần đăng nhập đang có. GitHub nói các token nhập thủ công tiếp tục hoạt động theo cách cũ; binary 2.103.0 cũng nêu token từ biến môi trường không được tự làm mới bằng cơ chế này. Không nên hiểu cập nhật CLI là đã xoay vòng toàn bộ bí mật trong hệ thống CI của doanh nghiệp.
Cần kiểm tra cả phiên bản client lẫn máy chủ
GitHub hướng dẫn dùng tùy chọn --expiring khi đăng nhập bằng gh auth login, hoặc bật ưu tiên credential có thời hạn trong cấu hình cho các lần đăng nhập sau. Đội vận hành nên đọc trợ giúp của binary thực tế trước khi áp dụng: một máy còn dùng bản cũ có thể không nhận tùy chọn mới. Không đổi cấu hình toàn công ty chỉ vì một máy demo đã nhận flag.
GitHub nêu hỗ trợ trên github.com và ghe.com; GitHub Enterprise Server bắt đầu cấp loại credential này từ 3.23. Máy chủ chưa hỗ trợ có thể trả token không hết hạn dù client đã yêu cầu kiểu mới. Vì vậy, nghiệm thu cần xem trạng thái credential thực được cấp, không chỉ thấy lệnh đăng nhập kết thúc thành công.
Với Git qua HTTPS, GitHub khuyến nghị để gh làm credential helper và dùng Git 2.46 trở lên để tránh helper cache token quá thời hạn. Credential helper là thành phần cung cấp thông tin xác thực khi Git cần; máy đang dùng helper khác cần rà tương tác trước khi thay. Bài này chỉ đọc trợ giúp, không đăng nhập hoặc thay helper của người dùng.
Điểm dễ hỏng là nơi chép token ra khỏi gh
Một script lấy token vào đầu buổi rồi tái sử dụng nhiều giờ có thể không hưởng lợi từ việc gh tự làm mới: biến mà script giữ vẫn là chuỗi cũ. GitHub khuyến nghị lấy credential mới tại thời điểm cần dùng thay vì cache đầu ra. Friday Works đề nghị lập danh sách nơi đang truyền token sang công cụ khác, tác vụ chạy dài và extension tự quản lý xác thực.
Friday Works khuyến nghị thử trên tài khoản và repository mẫu được phép, với thao tác chỉ đọc và log đã loại bí mật. Kiểm tra lần chạy đầu, lần chạy khi access token cần làm mới và phản hồi khi credential bị thu hồi. Không kiểm thử bằng cách chụp token lên màn hình hoặc chia sẻ giá trị cho công cụ ghi log bên ngoài.
Khi chưa kiểm chứng được tương thích của một workflow phụ thuộc token sống lâu, đội vận hành có thể giữ cách xác thực hiện có cho workflow đó trong lúc sửa tích hợp. Không nên chữa lỗi hết hạn bằng việc cấp quyền rộng hơn. Thời hạn của credential, phạm vi quyền và cách lưu bí mật là ba vấn đề khác nhau cần quản lý.
Token ngắn hạn vẫn cần bảo vệ và nghiệm thu
Refresh token cho phép client xin access token mới, nên vẫn là bí mật có giá trị. Friday Works khuyến nghị xem quyền truy cập máy, kho credential, quy trình rời công ty và thu hồi ứng dụng. Khi nghi có lộ credential, không chỉ chờ vài giờ cho access token hết hạn; cần xử lý quyền truy cập và credential liên quan theo quy trình sự cố.
Friday Works đề nghị ghi rõ host, phiên bản gh/Git, helper đang dùng và những script đã thử trước khi mở rộng. Chỉ đánh dấu hoàn tất khi thao tác Git lẫn API cần thiết vẫn chạy, quyền đúng phạm vi và log không lộ bí mật. Đây là tiêu chí thử đề xuất, chưa phải kết quả kiểm chứng khả năng refresh trên tài khoản production.
Ảnh bìa là đầu ra thật của gh auth login --help từ binary chính thức 2.103.0, chạy cô lập và hiển thị trong terminal web xterm ngày 22/10. Tùy chọn --expiring không được dựng bằng HTML; Friday Works chỉ cuộn vùng trợ giúp rồi chụp, không đăng nhập hoặc ghi credential. GitHub CLI dùng MIT; thông báo bản quyền và nguồn được lưu cùng tư liệu.
Nguồn tham khảo
Tài liệu đã dùng để biên soạn
Ưu tiên tài liệu chính thức và nguồn kỹ thuật gốc. Truy cập để kiểm tra chi tiết hoặc theo dõi cập nhật mới nhất.
- GitHub CLI expiring OAuth public preview —21 October 2026GitHub ↗︎
- GitHub CLI 2.103.0 release —21 October 2026; environment token limitationGitHub CLI maintainers ↗︎
- GitHub CLI authentication and refreshable-token behavior; maintained documentationGitHub Docs ↗︎
- GitHub CLI 2.103.0 official binary; original read-only PTY/help capture in xterm by Friday Works, 22 October 2026; no authentication performedGitHub / Friday Works ↗︎
- GitHub CLI MIT license, full notice retainedGitHub ↗︎
- xterm terminal emulator MIT license; actual program output, not a reconstructed product UIxterm.js contributors ↗︎
