Hexo博客同步部署到Github Pages
HDUZN

我的Hexo博客已经部署到云服务器上了,部署过程看此文:Hexo博客部署到云服务器(Ubuntu)上

然后,因为原来是用的Github Pages,就想着顺便同步到Github Pages上吧。

一、创建Github Pages

如果还没创建的,看此文 【小白教程】免费建立静态博客网站(Github+Hexo) 中第三步“部署到Github Pages上”的部分。

如果原来已经在创建的,那就先不用管了。直接下一步,创建SSH密钥。

二、创建专用的SSH密钥

原来部署到云服务器上也是用的git,所以这里也是用的git,就方便了。

步骤:

  • 进入本机SSH目录,创建一对新的SSH密钥
  • 把SSH公钥添加到Github中
  • 本机SSH配置文件(config)修改
  • ssh测试

1.创建一对新的SSH密钥

打开【Git Bash】,运行命令进入ssh目录:

1
2
3
cd ~/.ssh

ssh -keygen -t rsa -C "your_email@example.com"

上面的邮箱是自己的邮箱地址,按这个邮箱地址会创建一对密钥。

注意:回车后,有以下信息提示,让你输入一个key的file名称,要记得输入一个名称,不要用默认的。

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/yourusername/.ssh/id_rsa): [Press enter]

比如我输入github2022_rsa(文件名可以加上_rsa好识别)后回车,然后是输入密码,直接回车、回车,就表示用的空密码。

完成后,会显示如下的信息:

1
2
3
4
5
6
Your identification has been saved in github2022_rsa
Your public key has been saved in github2022_rsa.pub
The key fingerprint is:
SHA256:B***********t/9i*************s your_email@example.com
The key's randomart image is:

这样,新的SSH密钥就创建好了。

2.把SSH公钥添加到Github中

在【Git Bash】中,用以下命令把公钥内容复制到系统粘贴板(clipboard)中:

1
clip < ~/.ssh/id_rsa.pub
  • 登陆GitHub,进入Account 【Settings】;
  • 选择【SSH and GPG keys】;
  • 【New SSH key】,直接把复制好的公钥粘贴到Key的内容里,Title标题自己取,点击添加即可。

3.本机SSH配置文件修改

这个时候,你直接测试ssh是不通的,提示:“git@github.com: Permission denied (publickey).”
然后因为以前也用过github pages的,所以就有这个提示。

本机~/.ssh 目录有2个文件需要改动。

  • known_hosts 文件
  • config 文件

known_hosts文件用于验证远程登陆系统的身份。ssh可以自动将密钥添加到用户文件,也可以手动添加。该文件包含用户已连接过所有主机的公共密钥列表。一般,初次登陆,ssh会自动将远程主机的公钥添加到用户的known_hosts文件。

1).修改known_hosts 文件

要解决上面那个问题,就需要修改known_hosts 文件
用记事本类软件打开,把github.com开头的一行删除,再保存文件就行了。

2).修改config文件

修改完上面的文件,继续ssh测试,还是有上面的问题,还有一个提醒:
Warning: Permanently added 'github.com,140.82.113.3' (ECDSA) to the list of known hosts.

所以,我们把相关的配置添加到config配置文件中。(关于SSH密钥配置,config文件的介绍,这篇文章里有:Hexo SSH密钥配置

用记事本类软件打开config文件,添加下面2段配置:

1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
IdentityFile ~/.ssh/github2022_rsa
PreferredAuthentications publickey

Host 140.82.113.3
HostName 140.82.113.3
IdentityFile ~/.ssh/github2022_rsa
PreferredAuthentications publickey

140.82.113.3是通过ping github.com得到的ip地址。

4.ssh测试

配置完后在【Git Bash】中运行以下命令进行测试:

1
ssh -T git@github.com

看到最后一句Hi youname! You've successfully authenticated就OK了。

三、修改Hexo配置文件(_config.yml

在最后的 deploy模块下添加github项。

1
2
3
4
5
6
deploy:
type: git
repo:
hexo: git@111.4.22.313:/var/repo/hexo_static.git
github: git@github.com:hduzn/hduzn.github.io.git
branch: master

注:上面的111.4.22.313 为你自己服务器的ip(这里只是随便写的ip)

git@github.com后面的地址是你的 github用户名/github pages地址.git
这个在你的github pages仓库上,直接复制【Code】中的SSH地址是一样的。

这样就可以了。每次hexo deploy后,也会同步部署到Github Pages上了。

  • 本文标题:Hexo博客同步部署到Github Pages
  • 本文作者:HDUZN
  • 创建时间:2022-05-12 10:09:35
  • 本文链接:http://hduzn.cn/2022/05/12/Hexo博客同步部署到Github-Pages/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论