Hexo 部署到 GitHub(SSH 方式)完整方案

1️⃣ 准备工作

  1. 安装 Git

    1
    git --version

    确认 Git 已安装。

  2. 安装 Node.js 与 Hexo

    1
    2
    npm install -g hexo-cli
    hexo -v

2️⃣ 生成 SSH Key

如果没有 SSH key:

1
ssh-keygen -t rsa -b 4096 -C "[email protected]"
  • 一路回车,使用默认路径 ~/.ssh/id_rsa
  • 生成文件:
    • id_rsa(私钥)
    • id_rsa.pub(公钥)

3️⃣ 将公钥添加到 GitHub

  1. 查看公钥内容:

    1
    cat ~/.ssh/id_rsa.pub
  2. 打开 GitHub → Settings → SSH and GPG keys → New SSH key

  3. 粘贴公钥内容 → 保存


4️⃣ 测试 SSH 连接

1
ssh -T git@github.com
  • 成功提示:
1
Hi yourname! You've successfully authenticated...
  • 失败提示:检查 key 是否添加正确,或者 ssh-agent 是否启动。

5️⃣ 配置 Hexo _config.yml

编辑 Hexo 根目录下 _config.yml

1
2
3
4
deploy:
type: git
repo: git@github.com:yourname/yourname.github.io.git
branch: main

⚠️ 替换 yourname 为 GitHub 用户名,分支一般是 main


6️⃣ 确保 SSH key 被管理

启动 SSH agent 并添加 key(Windows PowerShell):

1
2
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

macOS / Linux 同样适用。


7️⃣ 部署到 GitHub

在 Hexo 项目目录执行:

1
2
3
hexo clean
hexo g
hexo d
  • hexo clean:清理缓存
  • hexo g:生成静态文件
  • hexo d:部署到 GitHub

8️⃣ 注意事项

  1. 如果报错 Permission denied (publickey)
    • 检查 SSH key 是否生成并添加到 GitHub
    • 检查 _config.yml repo 地址是否正确
    • 检查 ssh-agent 是否加载了正确的 key
  2. 如果使用多个 GitHub 账号,可在 ~/.ssh/config 指定:
1
2
3
4
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

9️⃣ 可选:HTTPS + Token

如果不想用 SSH,可用 HTTPS + GitHub Token:

1
2
3
4
deploy:
type: git
repo: https://<TOKEN>@github.com/yourname/yourname.github.io.git
branch: main
  • <TOKEN> 在 GitHub → Developer settings → Personal Access Tokens 生成