0%

Hexo免密推送到Github Pages

Hexo最方便的地方,就是可以将其生成的静态网页推送到Github上,通过Github Pages浏览。这样还可以省去一笔服务器的费用。缺点就是在国内的访问速度比较慢。本文通过介绍搭建的过程,最终将Hexo生成的静态网页通过SSH秘钥部署到Github Pages上。

生成 SSH 密钥

我们可以通过ssh秘钥,来实现免密推送

  1. 进入到.ssh目录(可选)

    1
    2
    # 这里我用root登录到我的linux上
    cd ~/.ssh
  2. 使用 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:
  3. 在~/.ssh目录下可以看到生成的公钥(id_rsa.pub)与秘钥(id_rsa)

  4. 使用以下命令查看公钥内容,备用。(你也可以使用vscode 或者记事本打开(0.0 记事本应该可以,我没有试过))

    1
    less id_rsa

Github 设置

登录Github,创建仓库

  1. 登录或者注册到Github
  2. 创建仓库(New repository)
  1. 设置仓库的名称。新仓库的命名规则为 username.github.io,如你的 username (用户名) 为 luohuidong,则这个仓库的命名就应该为 luohuidong.github.io(xxx为你的用户名)。这里可以将仓库设置为private,这样其它人就看不见仓库内的文件了。
  1. 创建完仓库之后,请记下 SSH URLs,这个后面在修改 hexo _config.yml 文件配置的时候要用到。

设置公钥

现在我们就可以在仓库中设置公钥了

  1. 进入你的仓库。打开Setting > Deloy Keys > add deloy key

  2. 输入标题,输入上面看到的公钥内容。注意勾选 Allow write access, 不然待会没有办法上传。

  3. 验证。在终端里面输入一下代码。

    1
    2
    3
    4
    5
    6
    7
    ssh -T git@github.com

    # 如果你看到了一下内容就说明成功了。
    Hi username! You've successfully authenticated, but GitHub does not provide shell access.

    # 如果出现了以下内容,重新检查以下上面的步骤有没有错误
    permission denied

Hexo设置

config设置

  1. 进入到你的Hexo目录,编辑_config.yml文件。

  2. 找到这样的一段代码,并插入你的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
2
3
4
5
# 注意到你的Hexo的目录下执行
# 这一条命令可选,如果你没有新建文件的话,可以忽略
hexo g
# 部署
hexo d