多github账号部署hexo项目方法
Hexo 账号专属配置:lxttz、xiaoluovip、zhylf
你现在有三个明确的GitHub账号:lxttz、xiaoluovip、zhylf,接下来我会基于这三个账号,把之前的通用步骤转化为可直接复制粘贴的专属配置,先补充「删除旧密钥」的步骤,再执行后续配置,你跟着操作就能快速完成,无需再自行修改占位符。
前置步骤:删除之前的旧密钥(彻底清理,避免冲突)
删除旧密钥分为两步:① 删除本地电脑上的旧密钥文件 ② 删除GitHub账号上绑定的旧SSH密钥,两步都需执行,确保无残留。
1. 删除本地电脑上的旧密钥文件(分系统执行)
打开对应终端(Windows用Git Bash,Mac/Linux用自带终端),复制对应命令执行,删除所有旧SSH密钥(包括默认的id_rsa、之前生成的旧密钥等):
1 | 删除本地旧密钥(分系统) |
提示:若想备份旧密钥,可先执行 cp ~/.ssh/* /path/to/backup(替换/path/to/backup为你的备份路径),再执行删除命令。
2. 删除GitHub账号上绑定的旧SSH密钥(三个账号都要操作)
分别登录 lxttz、xiaoluovip、zhylf 三个GitHub账号,删除所有旧的SSH密钥,步骤统一如下:
-
登录对应GitHub账号,点击右上角头像 → 选择
Settings; -
左侧导航栏找到并点击
SSH and GPG keys; -
找到所有标注「SSH key」(类型为Authentication key)的旧密钥,点击密钥右侧的
Delete; -
弹出确认框,点击
OK完成删除; -
三个账号依次重复以上步骤,确保所有旧SSH密钥全部删除。
验证:删除后,SSH and GPG keys页面仅显示「New SSH key」按钮,无任何SSH密钥记录即可。
一、补充:基于三个账号重新生成/配置SSH(若未生成)
旧密钥已彻底删除,现在直接用以下命令和配置,精准生成三个账号的新密钥,避免冲突:
1. 生成三个账号的专属SSH密钥
打开终端(Windows用Git Bash,Mac/Linux用自带终端),进入.ssh目录后,依次执行以下三条命令(无需修改,直接复制执行):
1 |
|
提示:执行每条命令后,连续回车2次即可(不设置密钥密码,部署更便捷),最终会在~/.ssh目录生成6个文件(每个账号1个私钥、1个公钥)。
2. 上传每个账号的公钥到对应GitHub(精准步骤)
分别复制三个公钥内容,上传到对应的GitHub账号:
1 |
|
复制后,登录lxttz的GitHub账号,按照之前的步骤添加SSH密钥(标题备注Laptop - lxttz Blog)。
1 |
|
复制后,登录xiaoluovip的GitHub账号,添加SSH密钥(标题备注Laptop - xiaoluovip Blog)。
1 |
|
复制后,登录zhylf的GitHub账号,添加SSH密钥(标题备注Laptop - zhylf Blog)。
3. 配置SSH config文件(专属三个账号,直接复制)
编辑~/.ssh/config文件,粘贴以下配置(无需修改,直接对应你的三个账号):
1 |
|
粘贴内容:
1 |
|
保存退出(nano编辑器:Ctrl+O → 回车 → Ctrl+X)。
4. 测试三个账号的SSH连接(验证是否成功)
依次执行以下三条命令,验证每个账号的连接:
1 |
|
每一条命令执行后,出现Hi [账号名]! You've successfully authenticated即表示成功(例如Hi lxttz! You've successfully authenticated)。
二、三个Hexo博客的_config.yml部署配置(直接复制)
每个博客对应一个账号,修改各自的_config.yml的deploy节点,以下是专属配置:
1. 博客1(对应账号lxttz)
打开博客1的_config.yml,找到deploy,修改为:
1 |
|
注意:如果你的博客仓库不是lxttz.github.io,替换为实际仓库名。
2. 博客2(对应账号xiaoluovip)
打开博客2的_config.yml,找到deploy,修改为:
1 |
|
3. 博客3(对应账号zhylf)
打开博客3的_config.yml,找到deploy,修改为:
1 |
|
三、(可选)三个博客的Git局部配置(对应各自账号)
进入每个博客目录,配置专属的用户名/邮箱,避免提交记录混淆:
1 |
|
四、部署测试(直接执行)
进入每个博客目录,执行部署命令即可:
1 |
|
提示:若提示deployer not found: git,在对应博客目录执行npm install hexo-deployer-git --save安装插件即可。
总结
-
先完成「删除旧密钥」(本地+GitHub),再生成新密钥,可彻底避免旧密钥导致的部署冲突;
-
所有新配置已精准对应你的三个账号
lxttz、xiaoluovip、zhylf,可直接复制执行,无需额外修改占位符; -
核心关联点:
SSH config别名→Hexo deploy repo→对应GitHub账号,三者一一对应确保部署不混淆; -
部署时只需进入对应博客目录执行标准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/。

