Trang chủ / Công cụ AI / Repo GitHub / Tạo GitHub token: mã chỉ hiện một lần, nhớ chép ngay
,

Tạo GitHub token: mã chỉ hiện một lần, nhớ chép ngay

Git không nhận mật khẩu GitHub khi tải repo riêng qua HTTPS. Bạn có thể tạo GitHub token để dán vào ô Password khi Git hỏi.

Ảnh đại diện Tuấn

0 lượt xem

Khi Git hỏi mật khẩu để vào repo qua HTTPS, nhập GitHub token thay mật khẩu.
Mục lục
  1. 1. GitHub token là gì? Mã thay mật khẩu cho Git và API
  2. 2. Khi nào bạn cần GitHub token?
  3. 3. Fine-grained hay classic: chọn loại personal access token nào?
  4. 4. Cách tạo GitHub token fine-grained từng bước
  5. 5. Dùng GitHub token ở đâu
  6. 6. Giữ GitHub token an toàn, lỡ lộ thì làm gì
  7. 7. Xoá token khi không dùng nữa
  8. 8. Lỗi hay gặp khi dùng GitHub token
  9. 9. Câu hỏi thường gặp về GitHub token

GitHub token là chuỗi mã bạn tự tạo để dùng thay mật khẩu khi Git (công cụ quản lý code) hay công cụ AI cần đăng nhập GitHub.

Chỉ cần có tài khoản GitHub, đọc xong bạn sẽ tự tạo được token chỉ bật đúng quyền mình cần.

Bạn sẽ gặp ô Password khi tải repo riêng tư trên trang lưu trữ code GitHub, vì GitHub không cho Git đăng nhập bằng mật khẩu tài khoản nữa. Repo là kho mã dự án, còn kho riêng tư chỉ cho chủ kho và người được mời mở xem.

Tuấn sẽ hướng dẫn bạn từng màn hình tạo token để lần đầu không bật dư quyền và kịp chép lúc mã vừa hiện.

Ngoài Git, bạn còn cần token khi nối công cụ AI hoặc khi GitHub giới hạn lượt gọi API (cổng nối để phần mềm tự lấy dữ liệu).

GitHub token có thể dùng khi Git kết nối qua HTTPS, công cụ AI cần vào repo riêng hoặc khi gọi API.
TÓM TẮT NHANH
  • Token là gì: Chuỗi mã thay mật khẩu lúc Git nối qua HTTPS hoặc phần mềm gọi API. HTTPS là kết nối có mã hoá, địa chỉ bắt đầu bằng https://.
  • Lúc cần có: Dùng kho riêng qua HTTPS, công cụ AI đòi mã, hoặc cần gọi API nhiều lượt. Khi chưa gắn token, mỗi giờ bạn chỉ gọi được 60 lượt theo IP (địa chỉ mạng của máy).
  • Loại nên chọn: Chọn fine-grained (chia quyền chi tiết) để khoanh từng repo và từng quyền. Bạn chỉ dùng classic (loại cũ, quyền rộng) khi việc đang làm buộc phải có.
  • Lúc tạo: Đặt hạn ngắn, chọn ít repo, ít quyền và chép ngay vì mã chỉ hiện một lần.
  • Xong hoặc lộ: Hết dùng thì xoá; lỡ lộ thì tạo mã mới, thay mọi chỗ rồi xoá mã cũ.

1. GitHub token là gì? Mã thay mật khẩu cho Git và API

Trên menu cài đặt, tên đầy đủ của mã này là personal access token (mã truy cập cá nhân).

Hiện tại GitHub có hai loại là fine-grained bắt đầu bằng github_pat_ và classic bắt đầu bằng ghp_, bạn nhìn mấy chữ đầu của một chuỗi mã lạ là nhận ra ngay.

GitHub token fine-grained bắt đầu bằng github_pat_, loại classic bằng ghp_; cả hai chỉ hiện một lần và cần giữ như mật khẩu.

Nhiều bạn mới hay tưởng tạo token xong là mở xem được cả kho riêng của người khác. Không có chuyện đó đâu nha.

Token không vượt quá quyền tài khoản của bạn, và chỉ làm được đúng những việc bạn bật quyền cho nó.

Tuấn thích dùng token hơn mật khẩu vì mỗi mã như một chìa khoá phụ, chỉ mở được đúng chỗ bạn cho phép. Đưa chìa phụ cho công cụ nào mà thấy bất ổn thì bạn huỷ riêng mã đó là xong.

2. Khi nào bạn cần GitHub token?

Cảnh đầu tiên hay gặp nhất là lúc Git hỏi Password, bạn gõ đúng mật khẩu đăng nhập web mà vẫn bị từ chối ngay cửa.

Git không nhận mật khẩu khi kết nối GitHub bằng HTTPS, nên hãy dán GitHub token vào ô Password.

Git hiện ô hỏi tên và mật khẩu khi bạn tải về hay đẩy code lên repo riêng tư qua HTTPS.

Đó là lúc bạn sao cả repo về máy bằng git clone, kiểm tra bản mới bằng git fetch, hoặc kéo bản mới về bằng git pull. Chiều ngược lại là lúc đẩy thay đổi lên bằng git push.

Ô Password lúc này thực chất chờ bạn dán token vào.

Hễ bạn nhập mật khẩu vào ô đó thay vì token, màn hình sẽ chặn lại bằng hai dòng báo lỗi dạng như vầy:

remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed for 'https://github.com/octocat/khong-co-repo-nay.git/'

Cảnh thứ hai là lúc công cụ AI bạn tải từ GitHub về, hoặc MCP server, đòi token để vào tài khoản GitHub của bạn. MCP server là cầu nối nhỏ giúp công cụ AI đọc kho mã hay thao tác trên GitHub hộ bạn.

Nếu công cụ hay MCP server có nút đăng nhập bằng OAuth (đăng nhập uỷ quyền), bạn dùng nút đó được. Còn gắn token là cách thứ hai.

Cảnh thứ ba là khi công cụ gọi REST API (kiểu API qua web) nhiều lần. Không kèm token thì chỉ được 60 lượt mỗi giờ theo IP, ghi ở bảng giới hạn REST API của GitHub.

Còn khi gắn token, bạn gọi được 5.000 lượt mỗi giờ, tính theo tài khoản chứ không theo IP.

Gọi API GitHub có token được 5.000 lượt/giờ; không có thì 60 lượt/giờ theo IP; token sai bị từ chối với mã 401.

2.1 Khi nào chưa cần token

Vậy nếu bạn chỉ muốn tải một kho mã công khai trên mạng về máy chạy thử thì có cần ngồi tạo token không? Chưa cần đâu nha.

Với kho công khai, bạn tải về xem thoải mái mà không cần đăng nhập hay gắn token.

Ngoài ra, theo tài liệu GitHub, công cụ Git Credential Manager đã đi kèm sẵn trong Git for Windows (bộ cài Git cho Windows). Nếu dùng máy Mac, bạn cần cài thêm công cụ này qua Homebrew (trình cài phần mềm Mac).

Có nó rồi, Git sẽ tự mở trình duyệt cho bạn đăng nhập mỗi khi cần xác thực. Nhờ vậy bạn khỏi cần tự tạo hay tự tìm chỗ cất token bằng tay nữa.

Tuấn thấy cách đó khá nhàn nếu bạn chỉ gõ lệnh Git mà không dùng công cụ AI.

3. Fine-grained hay classic: chọn loại personal access token nào?

Ở Settings mục Developer settings, menu Personal access tokens có hai dòng Fine-grained tokens và Tokens (classic). Bạn cứ ưu tiên fine-grained theo lời khuyên của GitHub.

GitHub token fine-grained cho chọn từng repo, từng quyền; classic dùng quyền theo nhóm và không chọn riêng từng repo.

Token fine-grained chỉ dùng trong một tài khoản hay tổ chức, khoanh riêng từng repo. Tổ chức ở đây là tài khoản chung của công ty hoặc nhóm trên GitHub.

Còn classic kém an toàn hơn do vào được mọi kho cá nhân lẫn các kho thuộc tổ chức bạn có quyền.

Bạn chỉ dùng classic cho việc fine-grained chưa làm được. GitHub đang lấp dần những chỗ thiếu sau:

  • Ghi vào kho công khai khác: Đẩy thay đổi lên kho công khai không thuộc về bạn hay tổ chức của bạn.
  • Được mời làm chung: Bạn được mời vào kho của người khác, kể cả kho riêng tư, hoặc kho của tổ chức mà bạn không phải thành viên. Fine-grained chưa dùng được ở đó.
  • Packages, Projects: Dùng Packages (kho gói code), hoặc dùng bảng công việc Projects thuộc tài khoản cá nhân.
  • Nhiều tổ chức cùng lúc: Một token cần dùng cho nhiều tổ chức cùng lúc, còn mỗi mã fine-grained chỉ gắn một tài khoản hay tổ chức.
  • Một số API riêng: Vài API của GitHub hiện chưa dùng được token fine-grained. Bạn chỉ gặp trường hợp này khi công cụ của bạn gọi đúng các API đó. Tài liệu của từng API đều ghi rõ loại token dùng được.

Trên biểu mẫu tạo mã classic, riêng ô nhóm quyền repo đã ghi thẳng dòng Full control of private repositories.

Nhìn một ô tích ôm trọn quyền mọi kho riêng tư là Tuấn thấy chùn tay rồi.

Nếu buộc dùng classic thì bạn cũng nhớ chọn ít nhóm quyền nhất và đặt hạn ngắn thôi nhé.

4. Cách tạo GitHub token fine-grained từng bước

Trước khi bấm tạo, bạn nhớ giữ token cẩn thận như mật khẩu của mình.

Khi tạo, bạn chỉ bật đúng quyền công việc cần và đặt hạn ngắn vừa đủ dùng.

Ngoài ra, trước khi tạo token, GitHub yêu cầu tài khoản của bạn phải xác minh địa chỉ email.

Để tạo GitHub token, mở trang, đặt tên và hạn, chọn repo, chọn quyền rồi chép mã.

Bước 1: Mở trang tạo token fine-grained

Sau khi đăng nhập tài khoản trên trình duyệt, bạn lần theo bốn cú bấm đúng như hướng dẫn tạo mã truy cập của GitHub:

  1. Bấm vào ảnh đại diện của bạn ở góc trên bên phải trang rồi chọn mục Settings.
  2. Kéo xuống thanh menu cột bên trái và bấm vào dòng Developer settings.
  3. Mở mục Personal access tokens rồi bấm chọn dòng Fine-grained tokens.
  4. Bấm nút Generate new token để mở biểu mẫu điền thông tin.

Ai đã quen tay thì dán thẳng địa chỉ https://github.com/settings/personal-access-tokens/new lên trình duyệt là tới ngay.

Biểu mẫu mở ra có sáu ô, trong đó chỉ riêng Token name là bắt buộc điền. Ô Description ngay dưới là phần ghi chú không bắt buộc.

Tiếp theo là bốn ô Resource owner (chủ sở hữu), Expiration, Repository access và Permissions. Ô Resource owner sẽ chọn ở Bước 3, còn ba ô kia bạn chọn theo thứ tự từ Bước 2 đến Bước 4.

Cuối trang là nút Generate token.

Trang hơi dài nhưng chia từng khúc rất rõ nên bạn cứ đi lần lượt từ trên xuống là khỏi sợ lạc.

Trên trang tạo mã, ô tên, Expiration và Repository access dùng để đặt tên, chọn hạn và chọn repo.

Minh hoạ từ giao diện trang GitHub

Bước 2: Đặt tên và chọn hạn dùng

Ở ô Token name, bạn nên đặt tên gắn thẳng với công cụ hoặc việc sắp dùng, chẳng hạn như mcp-doc-repo.

Nhờ đặt tên rõ như vậy, vài tuần sau mở lại danh sách là bạn biết ngay mã nào đã hết việc để xoá.

Ô hạn dùng Expiration có sáu lựa chọn để bạn đặt theo việc:

  • 7 days: Tự hết hạn sau 7 ngày, hợp để thử nhanh công cụ mới.
  • 30 days: Mức 30 ngày được GitHub chọn sẵn mặc định.
  • 60 days hoặc 90 days: Dành cho việc cần dùng lâu hơn 30 ngày, bạn vẫn ưu tiên mốc ngắn nhất vừa đủ việc.
  • Custom hoặc No expiration: Tự chọn ngày trên lịch, hoặc để mã không hết hạn.

Ở mục Custom, bảng lịch cho chọn sớm nhất là ngày mai và muộn nhất là tròn một năm kể từ ngày tạo.

GitHub khuyên bạn đặt hạn để tới ngày đó mã tự hết hiệu lực, dù menu vẫn có dòng No expiration.

Nếu bạn tạo token cho tổ chức, nơi đó có thể đặt luật chặn token không hạn. Còn với mọi tài khoản, token nào bỏ không dùng suốt một năm đều bị GitHub tự gỡ.

Bước 3: Chọn repo token được vào

Chọn repo công khai chỉ để đọc; chọn mọi repo của bạn gồm cả repo tạo sau, còn chọn từng repo giúp giới hạn phạm vi.

Token nào cũng có sẵn quyền đọc kho công khai. Vì vậy, giữ mức chọn sẵn Public repositories nghĩa là token không vào thêm kho riêng tư nào.

Chọn All repositories thì token vào được mọi kho của bạn, kể cả kho tạo sau này. Còn Only select repositories cho bạn chọn riêng từng kho, ít nhất một kho và tối đa 50 kho.

Token chỉ vào được kho thuộc đúng tài khoản của bạn hay tổ chức đã chọn ở ô Resource owner phía trên.

Bạn cứ để tài khoản của bạn, chỉ đổi sang tổ chức khi kho cần dùng thuộc tổ chức đó. Ở phần chọn kho, Tuấn khuyên bấm Only select repositories rồi chọn đúng kho đang làm cho gọn và an toàn.

Bước 4: Chọn xem token được đọc hay ghi gì

Lúc mới mở, khung quyền Permissions chỉ hiện Account 0 và dòng No account permissions added yet. Số 0 ở đây là chưa bật quyền nào chứ không phải tài khoản bị lỗi.

Cần việc gì thì bạn bấm nút Add permissions trong khung này để bật thêm quyền.

Tuấn rất ưng kiểu đó vì đỡ sợ cấp dư quyền.

Quyền chia ba nhóm cho repo, tổ chức và tài khoản. Tuỳ việc đang làm, bạn có thể phải bật hơn một quyền.

Khi phần mềm gọi API, tài liệu từng API ghi rõ quyền cần bật và có dùng được mã fine-grained không.

Còn đọc repo riêng hay xem email cần quyền nào, bạn xem bảng ngay dưới.

Đọc repo riêng cần Contents: Read, xem email cần Email addresses: Read; đọc repo công khai không cần thêm quyền.

Vậy muốn clone hay pull một repo riêng tư về máy thì bật dòng nào?

Bạn bật quyền Contents: Read trên đúng kho riêng tư muốn tải, vì đây là quyền đọc nội dung kho. Tuấn suy ra mục này từ tài liệu GitHub về quyền đọc kho, do hướng dẫn tạo token chưa ghi riêng quyền cho lệnh clone.

Bạn nhớ kiểm lại xem kho riêng tư đó đã được chọn ở Bước 3 chưa nhé.

Các quyền ghi, xoá hay quản trị thì bạn đừng bật nếu việc không cần, nhất là khi giao mã cho công cụ AI.

Bước 5: Bấm Generate token và chép token ngay

Kiểm lại một lượt rồi bạn kéo xuống đáy trang làm hai bước chốt để lấy mã:

  1. Bấm nút Generate token ở cuối biểu mẫu.
  2. Khi hộp xác nhận bật lên báo mã dùng được ngay kèm ngày hết hạn, bạn bấm Generate token lần thứ hai.

Nếu bạn vừa đăng nhập xong, GitHub không hỏi lại mật khẩu hay mã xác thực hai lớp (2FA). Đăng nhập đã lâu thì trang vẫn có thể hỏi lại mật khẩu hoặc mã 2FA.

Trang kế tiếp sẽ hiện ra chuỗi mã mới bắt đầu bằng cụm github_pat_.

Ngay phía trên ô mã là dòng nhắc nguyên văn Make sure to copy your personal access token now as you will not be able to see this again dặn bạn chép liền tay.

GitHub token chỉ hiện một lần sau khi tạo; chép lại trước khi rời trang vì sẽ không xem lại được.

Minh hoạ từ giao diện trang GitHub; chuỗi token là mã giả

Ngay lúc mã còn trên màn hình, bạn bấm sao chép rồi dán thẳng vào chỗ cần dùng. Đó là ô Password khi Git hỏi ở mục 5.1 hoặc file cấu hình ở mục 5.2.

Nếu lỡ đóng trang trước khi chép, bạn không xem lại được chuỗi mã đó nữa. Lúc này, bạn xoá dòng token vừa tạo trong danh sách Fine-grained tokens theo mục 7 rồi tạo mã mới.

Cũng vì vậy mà Tuấn luôn mở sẵn nơi dán trước khi bấm nút tạo.

Bước 6 (tuỳ chọn): Thử token bằng cách gọi API

Bước này chỉ cần khi bạn muốn kiểm tra mã vừa tạo đã chạy chưa trước khi dán vào công cụ.

Lệnh kiểm dưới đây dành cho bạn đã quen Terminal (cửa sổ gõ lệnh) trên Mac, ai chưa quen cứ bỏ qua.

Bạn chạy dòng đầu, dán token vào rồi bấm Enter; ký tự sẽ không hiện lên màn hình. Xong xuôi, bạn chạy tiếp dòng curl (lệnh gửi yêu cầu tới địa chỉ web hay API để xem kết quả):

read -s GITHUB_TOKEN
curl -s -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/user

Kết quả trả về trên màn hình có dòng "login" ghi đúng tên tài khoản của bạn là mã chạy tốt. Còn nếu hiện "message": "Bad credentials" thì token đó bị sai.

Đuôi /user ở cuối lệnh trên chính là địa chỉ đọc hồ sơ tài khoản. Dù chưa bật thêm quyền nào, token vẫn đọc được hồ sơ này và mọi repo công khai.

Chưa cấp thêm quyền cho token, gọi API GitHub vẫn xem được hồ sơ và repo công khai nhưng không xem được địa chỉ email.

Muốn thử lỗi thiếu quyền, bạn đổi đuôi địa chỉ trong dòng curl thành /user/emails (địa chỉ xem email). Do chưa bật quyền Email addresses, màn hình sẽ trả về câu báo Resource not accessible by personal access token.

5. Dùng GitHub token ở đâu

Bạn dán token vào ô mật khẩu khi Git hỏi, hoặc cất vào cấu hình cho công cụ AI.

5.1 Dán token vào ô Password khi Git hỏi

Khi Git hỏi tên và mật khẩu lúc kết nối bằng HTTPS, nhập tên GitHub vào ô Username và dán token vào ô Password.

Khi chạy lệnh git tải repo về máy với kho riêng tư, cửa sổ Terminal sẽ hỏi tên rồi mật khẩu theo dạng dưới đây:

Username: your-username
Password: <dán token, màn hình không hiện ký tự>

Dán mã xong không thấy ký tự hiện ra, bạn cứ yên tâm bấm Enter nha. Ô Username vẫn phải gõ tên tài khoản GitHub kẻo báo lỗi, dù GitHub chỉ kiểm token ở ô Password.

Token chỉ dùng cho kho nối qua HTTPS, tức địa chỉ bắt đầu bằng https://. Kho đang dùng SSH (đường nối bằng khoá riêng) thì cần đổi sang HTTPS.

Lần sau bạn khỏi dán lại mã nếu máy có Git Credential Manager đã nhắc ở mục 2.1.

Theo tài liệu GitHub, khi máy có công cụ này, token trên Mac sẽ lưu vào Keychain (trình lưu mật khẩu Mac). Còn trên Windows, token lưu vào Credential Manager (trình lưu mật khẩu đăng nhập Windows).

5.2 Lưu token trong file .env cho MCP server

Biến môi trường là ngăn nhớ trên máy để phần mềm tự đọc khoá mà khỏi ghi vào code. Với MCP server của GitHub, bạn đặt token vào biến GITHUB_PERSONAL_ACCESS_TOKEN.

Có biến này thì MCP server dùng luôn token trong đó, bạn khỏi đăng nhập OAuth qua trình duyệt. Điều này ghi rõ ở README (file giới thiệu repo) của MCP server chính chủ GitHub.

File .env (file lưu khoá bí mật) ở thư mục dự án cũng là một chỗ để ghi biến môi trường này. Bạn chọn một trong hai cách là đủ; thao tác từng bước có ở bài cách đặt khoá vào biến môi trường hoặc file .env.

Nếu chọn cách dùng file .env, bạn ghi dòng này vào file:

GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_xxxxxxxx…

Rồi bạn thêm dòng này vào .gitignore (danh sách file bỏ qua) để Git không đẩy nhầm lên mạng:

.env
Lưu GitHub token trong file .env cho công cụ dùng; đừng đẩy file đó lên repo.

Bạn cũng đừng gõ thẳng chuỗi token vào câu lệnh, theo lời dặn của GitHub. Gõ như vậy làm mã hiện ngay trên màn hình và lưu lại trong lịch sử lệnh.

Còn nguyên tắc riêng của Tuấn mỗi khi thử công cụ AI là tạo một mã riêng hạn ngắn và chỉ bật quyền mình yên tâm giao cho máy.

6. Giữ GitHub token an toàn, lỡ lộ thì làm gì

Bạn đừng gửi token qua tin nhắn hay email không mã hoá, theo lời dặn giữ an toàn khoá API của GitHub. Bạn cũng đừng đẩy mã lên bất kỳ repo nào, kể cả repo riêng tư.

Tuấn cũng khuyên bạn đừng dán token vào khung chat, kể cả khi đang nhắn với công cụ AI. Coi mã như mật khẩu thì dán vào đó chẳng khác nào trao chìa khoá cho bên khác giữ.

Nếu một token còn hiệu lực lỡ bị đẩy lên repo hoặc gist (trang chia sẻ đoạn code) công khai, GitHub sẽ tự thu hồi nó.

Cơ mà Tuấn khuyên bạn đừng trông vào cơ chế tự thu hồi đó, vì GitHub chỉ áp dụng cho repo và gist công khai. Mã lọt vào kho riêng tư hay khung chat thì đâu có tự khoá, bạn phải tự tay đổi mã ngay.

Lỡ lộ GitHub token thì tạo mã mới, thay vào mọi chỗ đang dùng, rồi mới xoá mã cũ.

Hễ nghi ngờ mã bị lộ, bạn tạo token mới, thay vào mọi nơi đang lưu hay dùng rồi mới xoá mã cũ. Nếu xoá trước, công cụ đang dùng mã cũ sẽ mất quyền ngay.

7. Xoá token khi không dùng nữa

Công cụ nào thử xong không dùng nữa, bạn xoá luôn mã của nó theo ba bước dưới đây. Lưu ý là hễ xoá, mọi công cụ đang dùng token đó sẽ mất quyền ngay và không lấy lại được.

  1. Mở Settings rồi vào Developer settings như ở Bước 1 mục 4, sau đó chọn Fine-grained tokens hoặc Tokens (classic).
  2. Tìm dòng mã cần bỏ và bấm nút Delete ở mép phải.
  3. Khi hộp Confirm token deletion bật lên nhắc việc xoá không thể hoàn tác, bấm nút I understand, delete this token.
Hộp xác nhận nhắc rằng xoá mã không thể hoàn tác, kèm nút xoá.

Minh hoạ từ giao diện trang GitHub

Bấm xoá xong, dòng token đó sẽ biến mất khỏi danh sách trên trang.

Token đã hết hạn hay bị thu hồi cũng không khôi phục được, khi cần dùng lại bạn phải tạo mã mới. Thói quen của Tuấn là cứ xong việc thì xoá sạch luôn, lúc nào cần lại tạo mã mới chỉ mất chừng một phút.

8. Lỗi hay gặp khi dùng GitHub token

Bảng tra lỗi Git không đăng nhập được và lỗi API GitHub từ chối token hoặc quyền truy cập.

8.1 Git báo “Invalid username or token”

remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed for 'https://github.com/octocat/khong-co-repo-nay.git/'

Hai dòng tiếng Anh trên báo rằng GitHub không nhận đăng nhập Git bằng mật khẩu.

Đường dẫn octocat/khong-co-repo-nay.git chỉ là địa chỉ ví dụ. Trên máy bạn, chỗ đó sẽ hiện địa chỉ kho bạn vừa chạy lệnh Git để tải về hay đẩy code lên.

Thấy báo vậy, bạn đừng vội hoang mang sợ nhớ nhầm mật khẩu đăng nhập web nha. Dù bạn gõ mật khẩu tài khoản hay dán nhầm một token sai, Git đều trả về đúng hai dòng lỗi này.

Để sửa, bạn kiểm lại ô Username đã điền tên chưa, ô mật khẩu đã dán đúng token còn hạn và chưa bị xoá chưa.

8.2 Git không hỏi Password mà vẫn báo lỗi

Khi Git không hỏi gì mà báo lỗi ngay, máy thường đang tự gửi lại mật khẩu hoặc token cũ đã lưu.

Hai cách dưới đây giúp bạn bỏ thông tin cũ trên Mac và Windows. Cả hai đều theo hướng dẫn của GitHub trong tài liệu lưu thông tin đăng nhập cho Git:

  • Mac: Mở Keychain, tìm mục đăng nhập GitHub rồi thay mật khẩu cũ bằng token mới.
  • Windows: Mở Control Panel vào User Accounts rồi Credential Manager, tìm mục GitHub và xoá đi để Git hỏi lại.
Thông tin đăng nhập cũ có thể nằm trong Keychain trên Mac hoặc Credential Manager trên Windows.

8.3 API trả 401 hoặc 403

{"message": "Bad credentials"}

Lỗi 401 kèm dòng trên báo token bị sai.

Bạn kiểm lại xem có chép thiếu ký tự nào không rồi thay mã đúng vào nhé.

Còn lỗi 403 có ba trường hợp:

  • Thiếu quyền: API GitHub trả 403 kèm câu Resource not accessible by personal access token khi token thiếu quyền cho việc đang gọi. Bạn sẽ thấy đúng câu báo này ở Bước 6 nếu đổi đuôi địa chỉ thành /user/emails mà token chưa bật quyền Email addresses. Bạn xem lại bảng chọn quyền ở Bước 4 để biết thiếu quyền nào.
  • Gửi sai nhiều lần: Gửi sai token hay thông tin đăng nhập nhiều lần trong thời gian ngắn làm GitHub tạm từ chối mọi lượt, kể cả mã đúng. Tuấn khuyên bạn nghỉ một lát rồi gọi lại nha.
  • Hết lượt trong giờ: Bạn đã gọi quá mức 60 lượt mỗi giờ khi không có token, hoặc 5.000 lượt khi có token. Đây không phải lỗi thiếu quyền, nên bật thêm quyền cũng không giúp được gì. Lượt gọi tính theo từng giờ, hết lượt thì bạn đợi tới lúc GitHub tính lại lượt rồi gọi tiếp. Ai quen đọc header (thông tin kèm phản hồi) sẽ thấy x-ratelimit-remaining bằng 0. Còn thời điểm tính lại lượt được ghi ở x-ratelimit-reset.

9. Câu hỏi thường gặp về GitHub token

9.1 GITHUB_TOKEN trong GitHub Actions có phải token bạn tạo?

Không phải đâu nha, GITHUB_TOKEN là mã riêng GitHub tự tạo cho mỗi lượt chạy tự động. Nó thuộc GitHub Actions (công cụ chạy việc tự động).

Trong Actions, mã này chỉ có quyền ở đúng repo chứa workflow (luồng việc tự động). Lượt chạy xong là mã tự hết hạn.

Bạn chỉ tải kho riêng tư hay dùng công cụ AI thì cứ bỏ qua cái tên này.


Quen tay rồi thì tạo một token bật đúng quyền mình cần chỉ mất chừng một phút thôi. Bạn đang lấy GitHub token để kéo repo riêng tư hay gắn cho công cụ AI nào, bình luận kể Tuấn nghe nhé?

Tin mới về GitHub

Người viết

Ảnh đại diện Tuấn

Về Tuấn

Bình luận

Nhắn cho Tuấn ở đây nhé

Tuấn đọc qua rồi mới bấm hiện bình luận nha. Email của bạn được giữ kín, không ai thấy đâu.

Đón bài mới từ Tuấn

Có bài mới trên web là Tuấn đăng lên Facebook TuanismeAI liền, còn video tóm tắt tin AI ngắn gọn thì Tuấn để ở TikTok @tuanisme.2026 cho bạn tiện xem.