Hexo搭建博客教程(3) - 远程部署到GitHub Pages

时间:2021-12-07 10:04:39

本章讲的是如何将本地的个人项目远程部署到 GitHub Pages,涉及到GitHub的项目仓库、Git的使用,以及Hexo的远程部署等。

1. 安装 hexo-deployer-git 插件

想要将Hexo项目部署到 GitHub上,需要先安装一个插件。在Hexo项目的根目录打开命令窗口,输入:

npm install hexo-deployer-git --save

2. GitHub上创建一个仓库

仓库的名字可以随便起,不过这个仓库是作为我们的博客仓库的,所以尽量将名字以 {username}.github.io 的形式来起。

比如,我的GitHub用户名是lewky,我就会把这个仓库命名为lewky.github.io。(为什么要这样起名,后面会说明)

3. 修改本地的项目配置文件

在 _config.yml 找到如下:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type:

把刚刚我们新建的GitHub仓库链接配置进来:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:/{user}/{repository}.git
branch: master
message:

请注意,这里的仓库地址如果写成:https://github.com/{user}/{repository}.git可能会在后边的部署时无法成功,需要将https://github.com改成git@github.com:

另外这里的branch和message可以不填,branch会默认是master分支,message会默认用下边的格式模板:

Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}

4. SSH key的创建与配置

最关键的一步来了,我们需要生成一对密钥对,然后将公钥配置到GitHub账号上。

4.1 生成RSA密钥对

首先使用 Git Bash 输入:

cd ~/.ssh

~ 指的是当前用户的根目录,即 C:\Users\{user}\;而 .ssh 目录下一般存放着公开的SSH key文件:

  • id_dsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

此外还有个 known_hosts 文件,SSH会把我们每个访问过的计算机的公钥(public key)都记录在里面。

如果在使用了 cd ~/.ssh 后能找到路径,那就把该目录下的 id_rsa.pub 文件里的内容复制到剪切板。如果找不到路径,就执行命令:

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

该命令会生成新的SSH key,这里的参数含义:

-t: type,生成的密钥类型
-b: bits,指定密钥长度,对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位,一般越长越安全。
-C: comment,提供一个新注释

接着会看到如下提示:

Enter file in which to save the key (/c/Users/123/.ssh/id_rsa):

这里按下回车,表示将SSH key保存到默认地址,即:C:\Users\{user}\

如果本身已经存在一个RSA私钥了,会提示你:

/c/Users/123/.ssh/id_rsa already exists.
Overwrite (y/n)?

这里输入 y 可以重新生成RSA密钥对;然后就会看到如下提示:

Enter passphrase (empty for no passphrase):

这里按下回车,表示不设置密码;接着会再提示你输入重复密码,依然是按下回车。

Enter same passphrase again:

这时候我们的SSH key就生成好了,去 ~/.ssh 目录下将里边的 id_rsa.pub 文件里的内容复制到剪切板。

4.2 在 GitHub 上配置SSH key

接着登陆我们的 GitHub 账号:

  • 进入 Settings 页面
  • 选择 SSH and GPG keys
  • 点击 New SSH key
  • 填写 Title(用来给公钥起一个名字,以便和其他的公钥区分开来)
  • 然后在 Key 里将我们刚刚复制的公钥复制进去
  • 最后点击 Add SSH key,这时候 GitHub 会要你输入账号密码进行确认。

4.3 验证ssh连接

使用 Git Bash 输入:

ssh -T git@github.com

接着会看到:

The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

输入 yes,会看到:

Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Hi lewky! You've successfully authenticated, but GitHub does not provide shell access.

这时候 github.com的公钥被保存到known_hosts文件里,如果我们再执行一次ssh -T git@github.com,就不需要输入yes了,会直接看到:

Hi lewky! You've successfully authenticated, but GitHub does not provide shell access.

4.4 部署到 GitHub Pages

输入命令:

hexo d
或者
hexo g -d

后一条命令表示生成静态页面并部署到远处仓库,第一次部署会久一点,部署成功后会看到:

 * [new branch]      HEAD -> master
INFO Deploy done: git

接着登陆 GitHub 并进入我们的项目仓库,可以看到已经多出了很多文件,且其 message 都是默认的格式:

Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}

接下来点击 Settings 进入该仓库的设置页面,找到 Github Pages 这一项,选择以 Master 分支作为 source,然后保存;接下来这个仓库就会被部署到 https://{username}.github.io/{仓库名}。

如果你希望直接通过 https://{username}.github.io/ 来访问你的博客,可以将仓库名改为 {username}.github.io;这样就不需要在url后边添加上仓库名来访问了。

接下来,开始享受你的个人博客吧

Hexo搭建博客教程(3) - 远程部署到GitHub Pages的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  3. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

    前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...

  4. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  5. Hexo搭建博客教程(1) - 安装环境与本地搭建

    前言 搭建个人博客一般有两种选择,一个是使用WordPress,但是需要将博客搭建在服务器上,不过搭建好后写文章方便,适合没有程序基础的人使用.另一个是使用Hexo,相对简洁高效,不需要服务器,既可以 ...

  6. Hexo搭建博客教程(2) - 博客的简单个性化配置

    本章主要讲博客的个性化,譬如站点的基本配置(语言.头像.站点图标等).安装新的Hexo主题(NexT主题)以及主题的配置. 1. 修改站点配置 打开站点配置文件 ,找到: # Site title: ...

  7. 基于Hexo搭建博客并部署到Github Pages

    基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几 ...

  8. 使用github+hexo搭建博客笔记

    听说github上可以搭博客,而且不用自己提供空间和维护,哈哈哈 作为一名程序猿,github搭博客对我有种神奇的吸引力,赶紧动手试一试 关于如何使用hexo搭建博客网上好的教程多如牛毛,而且这篇博客 ...

  9. 利用hexo搭建博客

    利用Hexo搭建博客 以前用Octopress搭过博客,折腾了好久才弄出来,当时看到那巨难看的默认主题,繁琐的操作,一点写东西的欲望都没了. 一次逛微博,看见了Hexo.尝试了一下,真的很好用哦. 下 ...

随机推荐

  1. php web系统多域名登录失败解决方法

    下面只是简单的逻辑结构,对于正式的系统需要做具体的处理. 这里需要注意的是:加解密一定需要做安全验证.但是这个方法也不够完美,两个站点必须有相同一级域名:另外这种完全基于cookie的方式,安全性不够 ...

  2. iTunes访问自己应用的沙盒

  3. 转:Java NIO系列教程(四) Scatter/Gather

    Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作.分散(sc ...

  4. C++11显式虚函数重载

    [C++11显式虚函数重载] 在子类中给重载的虚函数加上override, 可以让编译器检察基类是否有这一虚函数.此功能适用于当基类原有的虚函数发生变化,即相当于编译期检察. 而基类,可以给函数加上f ...

  5. 如何解决重启数据库时报ORA-01031无法登数据库

    问题现象:以无用户方式登录数据库,重启或关闭数据时,遇到下列问题: C:\Documents and Settings\xuzhengzhu>sqlplus /nolog SQL*Plus: R ...

  6. cocos2d-x 详解之 CCAction(动作)

    关于动作部分,总的来说使用起来比较简单,创建一个动作,然后让可渲染节点如精灵去执行这个动作即可.cocos2dx提供了很多类型的动作,使用起来也很方便.本节重点介绍动作CCAction的子类之一时间动 ...

  7. css 一些常用属性总结

    在项目中经常会用到一些很实用的css代码(*只做功能性记录,不追根究底,如有不合理的欢迎指正) css图片上下居中 /*图片上下居中代码*/ .imgvam { /*非IE的主流浏览器识别的垂直居中的 ...

  8. 【原创】编写多线程Python爬虫来过滤八戒网上的发布任务

    目标: 以特定语言技术为关键字,爬取八戒网中网站设计开发栏目下发布的任务相关信息 需求: 用户通过设置自己感兴趣的关键字或正则表达式,来过滤信息. 我自己选择的是通过特定语言技术作为关键字,php.j ...

  9. chrome的功能Copy as cURL

    https://segmentfault.com/q/1010000002508961

  10. ubuntu 16.04 安装chrome的方法

    默认chrome在ubuntu上是没默认安装,安装也不能使用apt-get 来安装,一般会遇到名字无法找到的问题. 摸索了一下,才找到一个比较好的安装方式: 1 从网站: https://www.ch ...