换新机再次折腾 Hexo blog
本文最后更新于:2025年3月24日 凌晨
换到 Mac mini 没有用 Time Machine 之类的迁移,选择手动配置,开箱新的机器,然后又要重新配置 Hexo 了。
安装 Git 和 Node.js
安装 Homebrew
1 |
|
我用 Qutumult X 开启 SS 服务器功能,代理终端流量后才得以安装 Homebrew,很奇怪,之前不用这不操作。
接着安装 Node.js 和 Git:
1 |
|
1 |
|
测试是否安装成功:
1 |
|
有版本号即可。
安装 Hexo
1 |
|
文件夹一开始还找不到,后来发现在 /Users/XXX/hexo,不然同名的 hexo 太多了会弄错。
新建一个名为 blog 的文件夹(可以自定义 blog
名字)
1 |
|
安装 Hexo 主题(具体去主题文档里面找)
1 |
|
添加 SSH Key 到 Github
接着又到了最头疼的一个地方了,绊倒了我三次,我也是真不长记性呵。
使用相同的 SSH 密钥**
像我这样两台设备又不想搞死的,其实可以共用一个 SSH 密钥。
步骤:
在第一台设备上导出原有的公钥,找到公钥文件 ~/.ssh/id_rsa.pub
并复制内容。
将公钥添加到 GitHub:在 GitHub 上进入 Settings > SSH and GPG keys,添加新的 SSH 密钥,粘贴你复制的公钥。
在第二台设备上使用同一个 SSH 密钥:将公钥文件(id_rsa.pub)复制到第二台设备的 ~/.ssh/ 目录下,然后重复上述步骤,将公钥添加到 GitHub 上。
使用相同的 SSH 密钥的好处是操作简单,尤其是在你不想管理多个密钥时。
当然如果这一步出问题了,也可以 为每台设备生成不同的 SSH 密钥,方法如下:
1. 编辑 SSH 配置文件
打开终端(Terminal),执行命令来生成:
1 |
|
复制公钥内容:
1 |
|
测试是否能联通
1 |
|
将每个设备的公钥分别添加到 GitHub 上。
问题
- 不知道是不是和 npm,node 版本有关系,用
npm update --save hexo-theme-xxx
升级 blog 主题版本失败,只能回退版本。手动解压主题到博客 Theme 文件夹里。但是这也很容易出兼容性问题,暂时没找到更好的方法,可能别的主题有解决办法也说不定 - 之前一直出问题的是 22 端口(SSH 连接)被屏蔽无法使用,要改到 443 端口(HTTPS 协议)
- 可是即使我配置了两个 SSH 密钥,在打开域名的时候还是会出现 GitHub Pages 404 的报错,弄到这里,真的很抓狂,已经折腾一晚上加一上午了,换个思路,以后也一劳永逸吧。
从 GitHub Pages 迁移至 Cloudflare Pages
接着,才是本文的重头戏。折腾了一晚上,最后都不知道问题出在哪里和线头一样,越理越乱,最后在余光的建议下,决定搬家到 Cloudflare Pages,相比 GitHub Pages 有更快的全球 CDN 和性能优化,有更高的构建时间或带宽上限。只是把源代码托管在 GitHub 的私人仓库里,隐私保护更佳。
跟着官方页面一步一步来,因为刚刚已经配置好其余条件,直接从 Create a GitHub repository 建立 GitHub 仓库开始:
在博客根目录下,
1 |
|
若提示:「错误:远程 origin 已经存在」,用这条命令:
1 |
|
转换成 SSH 协议,接着:
1 |
|
创立新仓库后需要 push 一下,不然看不到生产分支的 main 选项
1 |
|
其他高级参数不用管。Using a specific Node.js version 那步骤可以跳过。
控制台里有 preview url(部署-制作-访问)测试一下,页面能打开就没问题了。
添加自定义域名
因为我之前已经在 Cloudflare 托管域名了,可以省去这一步,根据他的流程来,Done!
之后就用这几个指令来完成,比以前 hexo 的指令稍微复杂些,因为是标准的 Git 操作了。
1 |
|
可以用诸如 fork.dev,GitHub Desktop 之类的图形界面工具来完成。这个之后再折腾了。
另,因为 blog 里经常有图片上传的需求,PicGo,无法用 Quantunlut X 来实现 HTTP 代理,折腾了很久无果,用这个软件只能换回 ClashX Pro 很遗憾,期待两位作者日后能更新下。
配置 SSH 通过 HTTPS 端口连接 GitHub
最后还是要上一道保险, 以免日后出问题。
为什么需要这么做?
- 网络限制:某些网络会封锁默认 SSH 端口(22),但允许 HTTPS(443)流量。
- 绕过限制:通过 443 端口建立 SSH 连接,解决无法推送/拉取代码的问题。
步骤 1:修改 SSH 配置文件
- 打开终端(Linux/macOS)或 Git Bash(Windows)。
- 编辑 SSH 客户端配置文件
~/.ssh/config
:
1 |
|
- 添加以下配置:
1 |
|
步骤 2:测试 SSH 连接
运行以下命令测试连接:
1 |
|
如果和我一样,遇到文件权限问题(Permission denied),别急,也有办法可以解决。
首先,确认你的用户名和组名是否正确。你可以通过以下命令检查当前用户名和所属的组:
1 |
|
- uid 是用户 ID
- gid 是组 ID,通常与用户名相同
- groups 列出了用户所属的所有组
像我就是 gid 和所有 group 是 staff,那就:
1 |
|
最后进行
1 |
|
就会成功进入编辑页面,编辑完成后,
- 按下 Ctrl + O
- 在屏幕底部,你会看到类似的提示:File Name to Write: ~/.ssh/config。直接按下 Enter 键确认保存
- 按下 Ctrl + X 退出 nano 编辑器
大功告成!
如何在另一台设备使用
直接把新仓库 Clone 下来用
- 获取仓库的 HTTPS URL:
在 GitHub 上打开仓库页面,点击绿色的 Code 按钮,选择 HTTPS,然后复制仓库的 URL,例如:
1 |
|
- 克隆仓库:
打开终端,进入你希望存储项目的目录,然后执行以下命令:
1 |
|
- 输入 GitHub 用户名和个人访问令牌:
- 当提示输入 GitHub 用户名和密码时,密码应为 GitHub 个人访问令牌(PAT),而不是 GitHub 密码。
- 如果你没有生成个人访问令牌,可以在 GitHub 的 设置页面 创建一个新的 PAT(只选 repo 即可)
最后的最后使用指令奉上: