如何生成 GitHub Token(用于 Hexo 部署):保姆級教程+避坑指南
前置說明:為什么需要 GitHub Token?
在使用 Hexo 部署博客到 GitHub Pages 時,你可能會遇到「密碼驗證失敗」或「需要雙重驗證」的問題——這是因為 GitHub 已逐步淘汰「密碼直接驗證」的方式,轉而推薦更安全的 Personal Access Token(個人訪問令牌)。
尤其適合以下場景:
- 已開啟 GitHub 雙重驗證(2FA),密碼無法直接用于部署;
- 不想在配置文件/命令行中暴露 GitHub 主密碼;
- 需要給 Hexo 分配「僅推送倉庫」的最小權限,避免權限過度開放。
為了讓你更直觀理解,這里對比兩種驗證方式的差異:
驗證方式 | 安全性 | 便捷性 | GitHub 支持度 |
---|---|---|---|
密碼驗證 | 低(易泄露、無權限控制) | 一般(需頻繁輸入,2FA 下失效) | 逐步淘汰 |
Personal Access Token | 高(僅開放必要權限,可隨時吊銷) | 高(一次配置,長期使用) | 推薦使用 |
1. 打開 Token 生成頁面(兩種路徑,避免迷路)
如果直接點擊鏈接失效,可通過 GitHub 后臺逐步進入,確保你能找到入口:
路徑1:直接訪問(推薦)
登錄 GitHub 后,打開 Personal Access Tokens (classic) 頁面:
👉 https://github.com/settings/tokens
(圖1:GitHub Personal Access Tokens 頁面,「Generate new token」按鈕)
路徑2:后臺逐步進入(備用)
- 點擊 GitHub 右上角「頭像」→ 選擇 Settings(設置);
- 拉到頁面底部,選擇 Developer settings(開發者設置);
- 在左側菜單找到 Personal access tokens → 點擊 Tokens (classic);
- 點擊綠色按鈕 Generate new token → 再次選擇 Generate new token (classic)(新手優先用 classic 令牌,配置更簡單)。
2. 填寫信息并設置權限(關鍵:避免權限不足或過度開放)
這一步決定 Token 是否能正常用于 Hexo 部署,每一項都要注意:
配置項 | 填寫說明 | 避坑提示 |
---|---|---|
Note(名稱) | 自定義一個易識別的名稱,比如 Hexo_Deploy_GitHubPages | 不要寫“我的Token”,否則后續多令牌時分不清用途 |
Expiration(有效期) | 推薦選擇 No expiration(永久有效),避免頻繁重新配置; 若擔心安全,可選「30天/90天」,到期前需提前重新生成 | 選“永久”不代表無風險,后續若Token泄露,需立即吊銷(步驟見 FAQ) |
Scopes(權限) | 只需要勾選 repo 即可(勾選后會自動選中其下所有子權限) | ? 不要勾選無關權限(如 gist、user),遵循“最小權限原則”; ? 若漏勾 repo,會出現“權限不足(permission denied)” |
配置完成后,點擊頁面底部綠色按鈕 Generate token。
(圖3:Token 配置頁面截圖,標注「Note」「Expiration」「repo權限」和「Generate token」按鈕)
3. 復制 Token(重中之重:只顯示一次,丟了無法找回)
生成成功后,GitHub 會在頁面頂部顯示一串以 ghp_
開頭的字符串(示例:ghp_abCDefGHIjklMNOpqrSTUvwxYZ123456789
)。
?????? 注意:Token 只顯示一次,一定要復制保存!
必須注意的3件事:
- ??立即復制:Token 僅在當前頁面顯示一次,刷新或關閉頁面后無法再次查看;
- 安全存儲:推薦用「密碼管理器」(如 1Password、Bitwarden、系統自帶鑰匙串)存儲,不要明文保存在記事本、桌面文檔或代碼倉庫中(會導致賬號被盜);
- 暫不關閉頁面:建議先復制到安全地方,再繼續配置 Hexo,避免中途需要重新查看。
(圖4:Token 生成成功后的顯示截圖,紅框標注 Token 字符串和“僅顯示一次”的提示)
4. 配置到 Hexo(含示例+錯誤排查)
接下來將 Token 配置到 Hexo 的部署文件中,確保能正常推送博客:
步驟1:找到 Hexo 配置文件
打開你的 Hexo 博客根目錄,找到 _config.yml
文件(若用 Next 等主題,需區分“站點配置”和“主題配置”,這里修改站點配置)。
步驟2:修改 deploy 配置
找到 deploy
節點,按以下格式替換內容(關鍵:將 <你的用戶名>
和 <你的Token>
替換為實際信息):
deploy:type: git# 格式:https://<GitHub用戶名>:<你的Token>@github.com/<GitHub用戶名>/<GitHub用戶名>.github.io.gitrepo: https://leo-angli:ghp_abCDefGHIjklMNOpqrSTUvwxYZ123456789@github.com/leo-angli/leo-angli.github.io.gitbranch: master# 若你的倉庫默認分支是 main,需改為 mainmessage: "Hexo deploy: {{ now('YYYY-MM-DD HH:mm:ss') }}" # 可選:添加部署時間備注,方便查看提交記錄
步驟3:執行部署命令
在 Hexo 根目錄打開終端,執行以下命令(若出現錯誤,見下方排查建議):
# 清理緩存(避免舊文件干擾)
hexo clean
# 生成靜態頁面(將 Markdown 轉為 HTML 等文件)
hexo generate # 可簡寫為 hexo g
# 部署到 GitHub Pages
hexo deploy # 可簡寫為 hexo d
常見錯誤排查:
- 若提示「permission denied (publickey)」:檢查
repo
鏈接是否為 https 協議(SSH 協議不支持 Token,需用 SSH 密鑰); - 若提示「Could not read from remote repository」:確認
repo
中的「用戶名」和「倉庫名」是否正確(倉庫名必須是<用戶名>.github.io
); - 若提示「403 Forbidden」:重新生成 Token,確保勾選「repo」權限,且配置中的 Token 未寫錯。
(圖5:Hexo 部署成功的終端截圖,紅框標注“Deploy done”提示和 GitHub 倉庫提交記錄)
5. 常見問題(FAQ):解決你可能遇到的后續問題
Q1:Token 丟了/忘了怎么辦?
無法找回!需按上述步驟重新生成新 Token,并替換 Hexo 配置文件中 repo
里的舊 Token(舊 Token 會自動失效,無需手動吊銷)。
Q2:可以用「Fine-grained tokens(細粒度令牌)」替代 classic 令牌嗎?
可以,但細粒度令牌需要額外配置「倉庫訪問權限」(需指定 <用戶名>.github.io
倉庫),新手建議先使用「classic 令牌」——配置更簡單,不容易因權限遺漏導致部署失敗。
Q3:Token 可以給他人使用嗎?
不建議!Token 等同于你的賬號權限(僅限制定的范圍),分享給他人可能導致博客被篡改、倉庫數據泄露。若需協作,建議給對方分配「倉庫協作者」權限,而非分享 Token。
Q4:如何吊銷已泄露/不再使用的 Token?
進入 GitHub Token 管理頁面,找到對應的 Token,點擊右側「Delete」即可(吊銷后,依賴該 Token 的部署會失效,需用新 Token 替換)。
總結:Token 生成+部署的核心 Checklist
為了避免遺漏關鍵步驟,可按以下清單核對:
- ? 生成 Token 時,勾選「repo」權限,名稱標注用途;
- ? 立即將 Token 存到密碼管理器,不明文保存;
- ? 配置 Hexo 時,確保
repo
鏈接格式正確(https 協議+用戶名+Token); - ? 部署失敗時,優先檢查 Token 權限、repo 鏈接、命令是否正確;
- ? 若 Token 泄露,第一時間在 GitHub 上吊銷。