Hexo最方便的地方,就是可以将其生成的静态网页推送到Github上,通过Github Pages浏览。这样还可以省去一笔服务器的费用。缺点就是在国内的访问速度比较慢。本文通过介绍搭建的过程,最终将Hexo生成的静态网页通过SSH秘钥部署到Github Pages上。
生成 SSH 密钥
我们可以通过ssh秘钥,来实现免密推送
进入到.ssh目录(可选)
1
2# 这里我用root登录到我的linux上
cd ~/.ssh使用
ssh-keygen生成密钥1
2
3
4
5
6
7
8
9
10
11
12
13# 这里'xxxx'里面的内容是注释,可以随便写
ssh-keygen -t rsa -C "xxx"
# 提示字符
# 直接三次回车即可
# Creates a new ssh key using the provided email
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):
# 注意:这里建议不用输入密码。否则在使用秘钥提交时,会要求输入这里设置的密码的
# 如果你不嫌麻烦,也可以输入
Enter passphrase (empty for no passphrase):
Enter same passphrase again:在~/.ssh目录下可以看到生成的公钥(id_rsa.pub)与秘钥(id_rsa)
使用以下命令查看公钥内容,备用。(你也可以使用vscode 或者记事本打开(0.0 记事本应该可以,我没有试过))
1
less id_rsa
Github 设置
登录Github,创建仓库
- 设置仓库的名称。新仓库的命名规则为
username.github.io,如你的 username (用户名) 为 luohuidong,则这个仓库的命名就应该为luohuidong.github.io(xxx为你的用户名)。这里可以将仓库设置为private,这样其它人就看不见仓库内的文件了。
- 创建完仓库之后,请记下 SSH URLs,这个后面在修改 hexo
_config.yml文件配置的时候要用到。
设置公钥
现在我们就可以在仓库中设置公钥了
进入你的仓库。打开
Setting > Deloy Keys > add deloy key输入标题,输入上面看到的公钥内容。注意勾选
Allow write access, 不然待会没有办法上传。验证。在终端里面输入一下代码。
1
2
3
4
5
6
7ssh -T git@github.com
# 如果你看到了一下内容就说明成功了。
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
# 如果出现了以下内容,重新检查以下上面的步骤有没有错误
permission denied
Hexo设置
config设置
进入到你的Hexo目录,编辑_config.yml文件。
找到这样的一段代码,并插入你的ssh urls
1
2
3
4
5# 注意:现在的GitHub默认的branch是main,而不是master。注意修改
deploy:
type: git
repo: <这里填写你SSH URLs>
branch: main如果你想要同时部署到多个服务器上,配置文件可以这么写(比如同时部署到github与gitee上)
1
2
3
4
5
6
7
8# 注意空格
deploy:
- type: git
repo: <这里填写你SSH URLs>
branch: <这里填写你branch>
- type: git
repo: <这里填写你SSH URLs>
branch: <这里填写你branch>部署
到这里,我们已经完成了99%的任务了。现在只要执行以下的代码,就可以将网页部署到Github Pages
1 | # 注意到你的Hexo的目录下执行 |