Hexo 账号专属配置:lxttz、xiaoluovip、zhylf

你现在有三个明确的GitHub账号:lxttzxiaoluovipzhylf,接下来我会基于这三个账号,把之前的通用步骤转化为可直接复制粘贴的专属配置,先补充「删除旧密钥」的步骤,再执行后续配置,你跟着操作就能快速完成,无需再自行修改占位符。

前置步骤:删除之前的旧密钥(彻底清理,避免冲突)

删除旧密钥分为两步:① 删除本地电脑上的旧密钥文件 ② 删除GitHub账号上绑定的旧SSH密钥,两步都需执行,确保无残留。

1. 删除本地电脑上的旧密钥文件(分系统执行)

打开对应终端(Windows用Git Bash,Mac/Linux用自带终端),复制对应命令执行,删除所有旧SSH密钥(包括默认的id_rsa、之前生成的旧密钥等):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
删除本地旧密钥(分系统)
# 一、Windows系统(Git Bash中执行)
# 进入.ssh目录
cd ~/.ssh
# 删除所有旧密钥文件(谨慎!仅当确认旧密钥无用时执行,可先备份)
rm -rf *
# 验证删除:执行后无输出,说明目录已清空
ls -l

# 二、Mac/Linux系统(自带终端执行)
# 进入.ssh目录
cd ~/.ssh
# 删除所有旧密钥文件(谨慎!仅当确认旧密钥无用时执行,可先备份)
rm -rf *
# 验证删除:执行后无输出,说明目录已清空
ls -l

提示:若想备份旧密钥,可先执行 cp ~/.ssh/* /path/to/backup(替换/path/to/backup为你的备份路径),再执行删除命令。

2. 删除GitHub账号上绑定的旧SSH密钥(三个账号都要操作)

分别登录 lxttzxiaoluovipzhylf 三个GitHub账号,删除所有旧的SSH密钥,步骤统一如下:

  1. 登录对应GitHub账号,点击右上角头像 → 选择 Settings

  2. 左侧导航栏找到并点击 SSH and GPG keys

  3. 找到所有标注「SSH key」(类型为Authentication key)的旧密钥,点击密钥右侧的 Delete

  4. 弹出确认框,点击 OK 完成删除;

  5. 三个账号依次重复以上步骤,确保所有旧SSH密钥全部删除。

验证:删除后,SSH and GPG keys页面仅显示「New SSH key」按钮,无任何SSH密钥记录即可。

一、补充:基于三个账号重新生成/配置SSH(若未生成)

旧密钥已彻底删除,现在直接用以下命令和配置,精准生成三个账号的新密钥,避免冲突:

1. 生成三个账号的专属SSH密钥

打开终端(Windows用Git Bash,Mac/Linux用自带终端),进入.ssh目录后,依次执行以下三条命令(无需修改,直接复制执行):

1
2
3
4
5
6
7
8
9
10
11
12
13

# 步骤1:进入.ssh目录(无则创建)
cd ~/.ssh
mkdir -p ~/.ssh # 确保目录存在

# 步骤2:为lxttz(账号1)生成密钥
ssh-keygen -t ed25519 -C "3229679493@qq.com" -f "id_ed25519_lxttz"

# 步骤3:为xiaoluovip(账号2)生成密钥
ssh-keygen -t ed25519 -C "3763458636@qq.com" -f "id_ed25519_xiaoluovip"

# 步骤4:为zhylf(账号3)生成密钥
ssh-keygen -t ed25519 -C "zhylf的GitHub绑定邮箱" -f "id_ed25519_zhylf"

提示:执行每条命令后,连续回车2次即可(不设置密钥密码,部署更便捷),最终会在~/.ssh目录生成6个文件(每个账号1个私钥、1个公钥)。

2. 上传每个账号的公钥到对应GitHub(精准步骤)

分别复制三个公钥内容,上传到对应的GitHub账号:

1
2
3
4
5
6

# 1. 复制lxttz的公钥(对应账号1)
# Windows/Git Bash
cat ~/.ssh/id_ed25519_lxttz.pub | clip
# Mac/Linux
cat ~/.ssh/id_ed25519_lxttz.pub | pbcopy

复制后,登录lxttz的GitHub账号,按照之前的步骤添加SSH密钥(标题备注Laptop - lxttz Blog)。

1
2
3
4
5
6

# 2. 复制xiaoluovip的公钥(对应账号2)
# Windows/Git Bash
cat ~/.ssh/id_ed25519_xiaoluovip.pub | clip
# Mac/Linux
cat ~/.ssh/id_ed25519_xiaoluovip.pub | pbcopy

复制后,登录xiaoluovip的GitHub账号,添加SSH密钥(标题备注Laptop - xiaoluovip Blog)。

1
2
3
4
5
6

# 3. 复制zhylf的公钥(对应账号3)
# Windows/Git Bash
cat ~/.ssh/id_ed25519_zhylf.pub | clip
# Mac/Linux
cat ~/.ssh/id_ed25519_zhylf.pub | pbcopy

复制后,登录zhylf的GitHub账号,添加SSH密钥(标题备注Laptop - zhylf Blog)。

3. 配置SSH config文件(专属三个账号,直接复制)

编辑~/.ssh/config文件,粘贴以下配置(无需修改,直接对应你的三个账号):

1
2

nano ~/.ssh/config

粘贴内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 对应账号1:lxttz(博客1)
Host github-lxttz
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_lxttz
IdentitiesOnly yes

# 对应账号2:xiaoluovip(博客2)
Host github-xiaoluovip
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_xiaoluovip
IdentitiesOnly yes

# 对应账号3:zhylf(博客3)
Host github-zhylf
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_zhylf
IdentitiesOnly yes

保存退出(nano编辑器:Ctrl+O → 回车 → Ctrl+X)。

4. 测试三个账号的SSH连接(验证是否成功)

依次执行以下三条命令,验证每个账号的连接:

1
2
3
4
5
6
7
8
9

# 测试lxttz账号
ssh -T github-lxttz

# 测试xiaoluovip账号
ssh -T github-xiaoluovip

# 测试zhylf账号
ssh -T github-zhylf

每一条命令执行后,出现Hi [账号名]! You've successfully authenticated即表示成功(例如Hi lxttz! You've successfully authenticated)。

二、三个Hexo博客的_config.yml部署配置(直接复制)

每个博客对应一个账号,修改各自的_config.ymldeploy节点,以下是专属配置:

1. 博客1(对应账号lxttz)

打开博客1的_config.yml,找到deploy,修改为:

1
2
3
4
5
6
7

deploy:
type: git
repo:
github: git@github-lxttz:lxttz/lxttz.github.io.git
branch: main
message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

注意:如果你的博客仓库不是lxttz.github.io,替换为实际仓库名。

2. 博客2(对应账号xiaoluovip)

打开博客2的_config.yml,找到deploy,修改为:

1
2
3
4
5
6
7

deploy:
type: git
repo:
github: git@github-xiaoluovip:xiaoluovip/xiaoluovip.github.io.git
branch: main
message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

3. 博客3(对应账号zhylf)

打开博客3的_config.yml,找到deploy,修改为:

1
2
3
4
5
6
7

deploy:
type: git
repo:
github: git@github-zhylf:zhylf/zhylf.github.io.git
branch: main
message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

三、(可选)三个博客的Git局部配置(对应各自账号)

进入每个博客目录,配置专属的用户名/邮箱,避免提交记录混淆:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 1. 进入博客1目录(对应lxttz)
cd /path/to/your/hexo-blog1
git config user.name "lxttz"
git config user.email "lxttz的GitHub绑定邮箱"

# 2. 进入博客2目录(对应xiaoluovip)
cd /path/to/your/hexo-blog2
git config user.name "xiaoluovip"
git config user.email "xiaoluovip的GitHub绑定邮箱"

# 3. 进入博客3目录(对应zhylf)
cd /path/to/your/hexo-blog3
git config user.name "zhylf"
git config user.email "zhylf的GitHub绑定邮箱"

四、部署测试(直接执行)

进入每个博客目录,执行部署命令即可:

1
2
3
4
5
6
7
8
9
10
11
12

# 部署博客1(lxttz)
cd /path/to/your/hexo-blog1
hexo clean && hexo g && hexo d

# 部署博客2(xiaoluovip)
cd /path/to/your/hexo-blog2
hexo clean && hexo g && hexo d

# 部署博客3(zhylf)
cd /path/to/your/hexo-blog3
hexo clean && hexo g && hexo d

提示:若提示deployer not found: git,在对应博客目录执行npm install hexo-deployer-git --save安装插件即可。

总结

  1. 先完成「删除旧密钥」(本地+GitHub),再生成新密钥,可彻底避免旧密钥导致的部署冲突;

  2. 所有新配置已精准对应你的三个账号lxttzxiaoluovipzhylf,可直接复制执行,无需额外修改占位符;

  3. 核心关联点:SSH config别名Hexo deploy repo对应GitHub账号,三者一一对应确保部署不混淆;

  4. 部署时只需进入对应博客目录执行标准Hexo命令,即可自动关联专属账号完成部署。

问题原因分析

1. SSH配置问题
用户的SSH配置文件(~/.ssh/config)中为不同GitHub账号设置了Host别名(如github-xiaoluovip),但Hexo配置文件中使用的是直接的SSH URL(git@github.com:xiaoluovip/xiaoluovip.github.io.git),导致Git无法正确匹配到对应的SSH密钥。

2. 端口阻塞
SSH配置中默认使用端口443,但该端口可能被网络环境阻塞,导致连接超时(Connection timed out)。

3. 密钥选择问题
Git默认会尝试所有可用的SSH密钥,但由于存在多个GitHub账号的密钥,可能没有自动选择到xiaoluovip账号对应的密钥(id_ed25519_xiaoluovip),导致权限拒绝错误(Permission denied (publickey))。

解决方案步骤

步骤1:测试SSH连接
使用指定密钥和端口22直接测试与GitHub的连接,验证密钥是否有效:

1
ssh -T -p 22 git@github.com -i C:\Users\lixiang\.ssh\id_ed25519_xiaoluovip

结果:连接成功,返回 Hi xiaoluovip! You've successfully authenticated,确认密钥可用。

步骤2:设置Git SSH命令
由于Hexo使用临时的.deploy_git文件夹进行部署,无法通过仓库级别的Git配置指定密钥,因此使用GIT_SSH_COMMAND环境变量全局指定SSH密钥路径:

1
$env:GIT_SSH_COMMAND='ssh -i C:/Users/lixiang/.ssh/id_ed25519_xiaoluovip'; hexo d

步骤3:修复路径格式
Windows系统中,SSH命令的路径需要使用正斜杠(/)而非反斜杠(\),避免路径转义错误(Identity file not accessible)。

最终验证

执行修正后的部署命令后,部署流程成功完成:

  • 生成所有网站文件(共165个文件)
  • 提交更改到本地Git仓库
  • 推送到远程GitHub仓库(xiaoluovip/xiaoluovip.github.io.git
  • 输出 INFO Deploy done: git 确认部署成功

总结

根本原因:SSH配置与Hexo部署配置不匹配,导致Git无法正确使用指定的SSH密钥连接GitHub。
解决方法:通过设置GIT_SSH_COMMAND环境变量,强制Git使用xiaoluovip账号对应的SSH密钥,并使用端口22避免网络阻塞。
结果:网站成功部署到 https://xiaoluovip.github.io/