前言

Hexo博客的部署方式多种多样,对于大多数个人用户而言,使用 hexo d 命令配合 hexo-deployer-git 插件是最经典、最直接的方式。这种方式将本地生成的静态文件直接推送到GitHub仓库的特定分支,再由GitHub Pages提供服务,省去了配置复杂的CI/CD流程,简单且高效。

本文将优先介绍如何在Windows环境下使用Scoop安装高性能包管理器pnpm,并详细讲解如何配置SSH密钥与 _config.yml 实现无密码一键部署。

一、 环境准备:使用Scoop安装pnpm

pnpm以其快速的安装速度和节省磁盘空间的特性,成为替代npm的理想选择。在Windows平台,推荐使用Scoop进行命令行安装。

1.1 安装Scoop

如果尚未安装Scoop,请按以下步骤操作:

  1. 打开 PowerShell(建议以管理员身份运行)。

  2. 设置执行策略以允许脚本运行:

    1
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  3. 执行安装命令:

    1
    irm get.scoop.sh | iex

    等待下载安装完成后,即可使用Scoop。

1.2 使用Scoop安装pnpm

Scoop安装完成后,只需一条指令即可完成pnpm的安装,无需手动配置环境变量:

1
scoop install pnpm

安装完成后,输入 pnpm -v 验证是否安装成功。

二、 Hexo项目配置

2.1 初始化项目与安装依赖

确保本地已安装Node.js环境。使用pnpm初始化Hexo项目:

1
2
3
4
5
6
7
8
9
# 安装Hexo框架
pnpm add -g hexo-cli

# 初始化博客目录
hexo init my-blog
cd my-blog

# 使用pnpm安装依赖
pnpm install

2.2 安装部署插件

核心步骤是安装 hexo-deployer-git 插件。该插件能够将Hexo生成的静态文件自动推送到Git仓库。

1
pnpm add hexo-deployer-git

三、 配置 _config.yml 实现一键部署

3.1 获取仓库地址

在GitHub上创建一个仓库(例如 username.github.io)。为了后续配置SSH连接,请准备好仓库的SSH地址,格式通常为 git@github.com:username/username.github.io.git。

3.2 配置SSH Key连接GitHub

为了避免每次执行 hexo d 时都需要输入GitHub的用户名和密码(或Token),强烈建议配置SSH Key实现免密推送。

1. 检查现有密钥

打开 Git Bash 或 PowerShell,输入以下命令查看是否已有密钥:

1
ls ~/.ssh

如果看到 id_ed25519 或 id_rsa 文件,说明已有密钥,可直接跳到第3步。如果提示目录不存在,请继续第2步。

2. 生成新的SSH密钥

输入以下命令生成密钥(将邮箱替换为你的GitHub注册邮箱):

1
ssh-keygen -t ed25519 -C "your_email@example.com"

注:如果系统不支持 ed25519,可使用 ssh-keygen -t rsa -b 4096。

一路按回车键使用默认设置(文件保存路径、密码留空)。生成成功后,会在用户主目录下创建 .ssh 文件夹。

3. 添加公钥到GitHub

  1. 复制公钥内容:
    在终端输入以下命令查看公钥,并完整复制输出的内容:
    1
    2
    3
    cat ~/.ssh/id_ed25519.pub
    # 或者如果是旧版RSA
    # cat ~/.ssh/id_rsa.pub
  2. GitHub后台配置:
    • 登录 GitHub,点击右上角头像 -> Settings。
    • 在左侧菜单找到 SSH and GPG keys。
    • 点击 New SSH key。
    • Title 随意填写(如 “My Laptop”),Key type 选择 “Authentication Key”。
    • 将刚才复制的公钥粘贴到 “Key” 文本框中,点击 Add SSH key。

4. 测试连接

在终端输入以下命令测试连接是否成功:

1
ssh -T git@github.com

如果看到 Hi username! You've successfully authenticated... 提示,说明SSH配置成功。

3.3 修改配置文件

打开站点根目录下的 _config.yml 文件,找到末尾的 deploy 字段。请务必使用SSH格式的仓库地址:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: git@github.com:你的用户名/你的用户名.github.io.git
branch: main # 或者 gh-pages,取决于你的GitHub Pages设置

配置项关键点:

  • repo: 这里必须填入刚才测试通过的SSH地址(以 git@github.com 开头),而非 https:// 开头的地址。
  • branch: GitHub Pages目前默认部署源为 main 分支,请根据你的仓库Settings -> Pages中的设置保持一致。

四、 部署与验证

4.1 执行部署命令

配置保存后,在Hexo根目录下执行以下命令:

1
hexo clean && hexo g -d
  • hexo clean: 清除缓存。
  • hexo g: 生成静态文件。
  • -d: 部署到远程仓库。

由于我们配置了SSH Key,过程中应该不会弹出输入密码的提示,直接显示推送进度,直到出现 Deploy done: git 即为成功。

4.2 GitHub Pages 设置

部署完成后,登录GitHub仓库:

  1. 进入 Settings -> Pages。
  2. 确认 Build and deployment -> Source 选择的是 Deploy from a branch。
  3. 确认分支为你刚才推送的分支(如 main),目录为 / (root)。

稍等片刻,访问 https://你的用户名.github.io 即可看到博客内容。

五、 总结

通过配置SSH Key,我们解决了HTTPS方式频繁验证身份的烦恼,配合 hexo-deployer-git 插件,实现了真正意义上的本地“一键部署”。这种方式不仅安全便捷,而且是目前Hexo用户最推荐的标准化工作流。