如何生成 GitHub Token(用于 Hexo 部署):保姆級教程+避坑指南

如何生成 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:后臺逐步進入(備用)

  1. 點擊 GitHub 右上角「頭像」→ 選擇 Settings(設置);
  2. 拉到頁面底部,選擇 Developer settings(開發者設置);
  3. 在左側菜單找到 Personal access tokens → 點擊 Tokens (classic)
  4. 點擊綠色按鈕 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件事:

  1. ??立即復制:Token 僅在當前頁面顯示一次,刷新或關閉頁面后無法再次查看;
  2. 安全存儲:推薦用「密碼管理器」(如 1Password、Bitwarden、系統自帶鑰匙串)存儲,不要明文保存在記事本、桌面文檔或代碼倉庫中(會導致賬號被盜);
  3. 暫不關閉頁面:建議先復制到安全地方,再繼續配置 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

為了避免遺漏關鍵步驟,可按以下清單核對:

  1. ? 生成 Token 時,勾選「repo」權限,名稱標注用途;
  2. ? 立即將 Token 存到密碼管理器,不明文保存;
  3. ? 配置 Hexo 時,確保 repo 鏈接格式正確(https 協議+用戶名+Token);
  4. ? 部署失敗時,優先檢查 Token 權限、repo 鏈接、命令是否正確;
  5. ? 若 Token 泄露,第一時間在 GitHub 上吊銷。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96313.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96313.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用加密算法之 AES 簡介及應用

相關系列文章 常用加密算法之 SM4 簡介及應用常用加密算法之 RSA 簡介及應用 引言 AES&#xff08;Advanced Encryption Standard&#xff0c;高級加密標準&#xff09;是一種??廣泛使用的對稱分組加密算法??&#xff0c;它使用相同的密鑰進行加密和解密操作&#xff0c…

Java面試問題記錄(一)

一、Java 核心基礎與進階1、我們知道 Java 中存在 “值傳遞” 和 “引用傳遞” 的說法&#xff0c;你能結合具體例子&#xff0c;說明 Java 到底是值傳遞還是引用傳遞嗎&#xff1f;這背后涉及到 JVM 中哪些內存區域的交互&#xff1f;Java中只有值傳遞&#xff0c;不存在引用傳…

Redis 主從復制、哨兵與 Cluster 集群部署

文章摘要 本文基于 VMware 虛擬機環境&#xff0c;詳細講解 Redis 高可用架構的核心組件與部署流程&#xff0c;涵蓋三大核心模塊&#xff1a;Redis 主從復制&#xff08;實現數據備份與讀寫分離&#xff09;、Redis 哨兵&#xff08;基于主從復制實現故障自動轉移&#xff0c;…

ElementUI 中 validateField 對部分表單字段數組進行校驗時多次回調問題

目錄 方案一&#xff1a;循環調用 Promise.all 合并結果 方案二&#xff1a;直接傳入數組字段 總結 在實際業務中&#xff0c;我們有時只需要對表單的部分字段進行校驗。ElementUI 提供的 validateField 方法支持單個字段&#xff0c;也支持字段數組&#xff0c;但在使用時…

Visual Studio 2026 震撼發布!AI 智能編程時代正式來臨

Visual Studio 2026 震撼發布&#xff01;AI 智能編程時代正式來臨 Visual Studio 2026 Insider圖標 開發者們的開發環境即將迎來前所未有的智能革命&#xff0c;微軟用Visual Studio 2026 重新定義了編碼體驗。 2025年9月10日&#xff0c;微軟正式推出了Visual Studio 2026 In…

Gamma AI:高效制作PPT的智能生成工具

你有沒有過這種崩潰時刻&#xff1f;領導讓你下午交一份產品介紹 PPT&#xff0c;你打開模板網站翻了半小時沒找到合適的&#xff0c;好不容易選了個模板&#xff0c;又得手動調整文字間距、搭配圖片&#xff0c;光是把數據做成圖表就花了一小時&#xff0c;最后趕出來的 PPT 還…

Python副業新玩法:用Flask搭小程序后端,躺賺被動收入的秘密

凌晨1點&#xff0c;林浩合上電腦時&#xff0c;手機彈出一條微信消息——是上周幫一家社區水果店搭的小程序后端&#xff0c;商家發來了當月的服務費到賬提醒。他靠在椅背上笑了&#xff1a;這是這個月第8筆“睡后收入”&#xff0c;加起來剛好覆蓋了下個月的房貸。半年前&…

基于PyQt5和阿里云TTS的語音合成應用開發實戰[附源碼】

項目概述 本文將詳細介紹一個基于PyQt5圖形界面框架和阿里云TTS(Text-to-Speech)服務的語音合成桌面應用程序的開發過程。該應用提供了完整的文字轉語音功能,包括多音色選擇、參數調節、實時試聽、語速調節和音頻下載等特性。 技術棧 前端界面: PyQt5 語音合成: 阿里云TTS服…

基于esp32c3 rust embassy 的墨水屏程序

EPD Reader 基于ESP32-C3的電子墨水屏閱讀器&#xff0c;支持ap 配網、sntp 時間同步、txt閱讀、天氣預報、顯示節假日信息、農歷顯示、自動休眠、web配置等功能。這是在另一個項目 一個rust embassy esp32c3 的練習項目-CSDN博客的基礎上修改的 。 界面比較粗糙&#xff0c;以…

Spring 單例測試及線程安全

創建一個賬戶類 package com.duanhw.demo22.account;import org.springframework.beans.factory.annotation.Value;//Service public class AccountService {Value("1000")private Integer balance;//存款public void deposit(Integer amount){int newbalance balanc…

【vue】組件寬度調整失效后,調整的方法

父容器布局限制 若組件放置在柵格布局&#xff08;如display: grid&#xff09;或彈性容器中&#xff0c;父元素的寬度限制可能導致子組件寬度失效。解決方案是為父容器設置明確的寬度&#xff0c;或通過百分比布局實現自適應16。例如&#xff1a; <div style"width:…

Java 在Word 文檔中插入頁眉頁腳:一份實用的編程指南

在現代企業應用中&#xff0c;Java 開發者經常需要處理各種文檔操作&#xff0c;其中對 Word 文檔的自動化處理尤為常見。無論是生成報告、合同還是其他商業文檔&#xff0c;頁眉頁腳作為文檔結構的重要組成部分&#xff0c;承載著公司 Logo、頁碼、版權信息等關鍵內容。手動添…

深入解析Dart虛擬機運行原理

Dart虛擬機運行原理 一、Dart虛擬機 1.1 引言 Dart VM是一種虛擬機&#xff0c;為高級編程語言Dart提供執行環境&#xff0c;但這并意味著Dart在D虛擬機上執行時&#xff0c;總是采用解釋執行或者JIT編譯。 例如還可以使用Dart虛擬機的AOT管道將Dart代碼編譯為機器代碼&#xf…

光譜相機在AI眼鏡領域中的應用

一、核心應用場景?健康監測系統??實時生理指標分析?&#xff1a;通過眼周皮膚光譜特征&#xff0c;監測血氧(SpO?)和血紅蛋白變化&#xff0c;精度可達2%?血糖無創檢測?&#xff1a;近紅外光譜(900-1700nm)分析淚液成分&#xff0c;臨床測試相關系數R0.87?疲勞度評估?…

如何通過url打開本地文件文件夾

安裝部署 https://github.com/jixn-hu/notion_link_opener 這是我自己開發的一個后端服務&#xff0c;要一直開著 部署好后 會打開一個前端頁面填下好你文件或者文件夾 點擊生成短鏈就可以直接打開本地的文件夾了

第一篇:如何在數組中操作數據【數據結構入門】

記錄以下自己重溫數據結構的筆記&#xff0c;附帶自己實現的C代碼&#xff0c; 其中部分Python代碼是網上教程里的&#xff0c;順手粘貼過來&#xff0c;做一對比/ &#xff08;Python確實簡潔&#xff0c;但是C更好理解不是嗎哈哈哈&#xff09;數組的定義 數組&#xff1a;線…

基于STM32的單片機開發復盤

硬件介紹 底盤&#xff1a;幻爾阿克曼底盤&#xff1b;2個直流霍爾電機、1個PWM舵機開發板&#xff1a;幻爾Ros Controller V1.2&#xff08;STM32F407VET6&#xff09;電源&#xff1a;因為是學習階段&#xff0c;沒有配電池&#xff0c;使用120W可調電源&#xff08;3V~12V&a…

面試常問:注冊中心宕機,遠程調用還能成功嗎?

在微服務架構里&#xff0c;注冊中心&#xff08;像 Nacos、Eureka、Consul 等&#xff09;是服務發現與治理的核心。可要是注冊中心突然宕機&#xff0c;微服務間的遠程調用還能順利進行嗎&#xff1f;這是面試時很常被問到的問題&#xff0c;下面我們就來深入剖析。一、遠程調…

《用 Python 和 Matplotlib 繪制折線圖:從入門到實戰的可視化指南》

《用 Python 和 Matplotlib 繪制折線圖:從入門到實戰的可視化指南》 一、引言:數據可視化的力量,從一張折線圖開始 在我多年的開發與教學經歷中,最常被問到的問題之一是:“如何讓數據更直觀?”我的答案始終如一:用圖說話。而在眾多圖表類型中,折線圖以其簡潔、清晰的…

Seate的XA模式和AT模式

目錄 一、XA模式 【1】兩階段提交 【2】Seata的XA模型 【3】優缺點 【4】實現XA模式 二、AT模式 【1】Seata的AT模型 【2】AT與XA的區別 【3】臟寫問題 【4】優缺點 【5】實現AT模式 一、XA模式 XA 規范 是 X/Open 組織定義的分布式事務處理&#xff08;DTP&#xf…