引言
Hexo 博客搭建完了之后,文章发布虽然方便,但发布流程依赖于本机上已经部署好的 Hexo 环境,当要发布文章时,如果部署好的电脑不可用(坏了/不在身边),或者换了新电脑,总之面对一台空荡荡的新电脑,要重新人工搭建已有环境非常麻烦,且之前发布过的文章(md文件)会丢失。
为了避免这种情况,我们可以通过 Github 将文章及发布环境打包,做成一键备份/部署的脚本,这样在迁移到新环境后,只需简单的操作即可完成 Hexo 文章发布环境的部署,同时实现文章的备份及同步功能。
正文
环境准备
本文以 macOS 10.14.4系统为例,具体命令及路径请根据自己的情况进行调整。
在开始之前,请确定已安装 Node.js 环境并配置好系统环境变量,然后在终端运行 node -v
查看 Node.js 版本,运行 npm -v
查看 NPM 版本,没有出现报错说明 Node.js 环境正常。如果没有安装 Node.js 环境的话,可以参考 本文 进行安装
安装并配置 Git
安装 Git
macOS 已经自带了 Git,如果没有安装,或者是其它系统/平台,可以参考 官网教程 ,或自行谷歌查找教程。对于 macOS 及 Windows 系统,还可以通过 这里 下载带 GUI 界面的安装包。
安装完成后,在终端运行 git --version
查看 Git 的版本,没有出现报错说明Git已经正确安装。
配置 Git 连接 GitHub
设置 GitHub 用户名和邮箱
首先,假定已经有了一个 GitHub 账号。接下来,通过终端配置名字和邮箱:
1 | git config --global user.name "John Doe" |
其中”John Doe”替换为你的 GitHub 用户名,也就是个人首页链接 https://github.com/username 中的username;[email protected] 替换为该 GitHub 账号设置的 Public email 地址。
配置完成后,可以通过 git config —list
命令检查配置是否正确。注意,如果 GitHub 账号没有设置 Public email 或者设置的 Public email 与配置不符,均会导致后续 Git 同步出错。
配置 SSH Key
本地 Git 仓库与 GitHub 仓库之间进行数据传输时,是通过 SSH 进行加密通信的,而 SSH Key 就是加密通信时用于验证身份的密钥。
生成 SSH Key
打开终端,执行 ssh-keygen -t rsa -C "[email protected]"
生成 SSH Key 密钥对。其中 -t 参数指定了密钥对的加密协议为 RSA ,在本次密钥对生成中不能更换为其它协议;-C 参数设置的是生成密钥对的备注,可以自行填写为其它内容。
输入上述命令后回车执行,会提示询问生成密钥对的存放路径(默认为 ~/.ssh/id_rsa
),一般情况下保持默认,直接回车确认即可;确认存放路径后,程序会提示”设置密钥对密码”,此处直接回车跳过(即不设置密码),然后在接下来的”确认密码”环节也直接回车跳过,即可完成 SSH Key 的生成步骤。
注意,如果选定的密钥对存放路径中已经有同名文件,会提示是否覆盖,请根据实际情况选择覆盖或重新设定存放路径。生成 SSH Key 的过程可参考下文:
1 | ssh-keygen -t rsa -C "[email protected]" |
配置 GitHub
在完成了 SSH Key的生成步骤后,可以在指定的存放路径下找到两个文件,即为生成的 SSH 私钥与公钥,文件名在生成密钥对时设置,默认情况下分别为 id_rsa
和 id_rsa.pub
。
打开浏览器,访问 GitHub 并登陆自己的账号,点击右上角个人头像并选择下拉菜单中的”Settings”:
在左侧找到”SSH and GPG keys”选项,然后点击”SSH keys”行右侧的”New SSH key”按钮,进入新增 SSH Key 界面:
“Title”栏为该 SSH Key 的标题,可自行随意填写;然后在”Key”栏中填入之前生成的 id_rsa.pub
文件中的内容,具体内容查看方法如下:
1 | cat ~/.ssh/id_rsa.pub |
将完整的文件内容(包括开头的”ssh-rsa”和末尾的邮箱/备注)复制并粘贴到 GitHub 网页的”Key”栏中:
点击”Add SSH key”保存即可。保存完成后,如果在生成 SSH 密钥对时没有使用默认的存放路径,则需要配置 SSH 连接的 Key 文件路径,下次有空再写应该怎么处理多 Key 文件的问题。此处默认 SSH Key 文件路径为 ~/.ssh/id_rsa
及 ~/.ssh/id_rsa
。
在终端中执行 ssh -T [email protected]
测试连通性,如果是第一次通过 SSH 连接 GitHub 的话,会提示”目标服务器未确认,是否保存 RSA key 信息并继续”,此处输入”yes”并回车即可。当出现下文提示时,说明 SSH Key 已经配置成功:
1 | ssh -T [email protected] |
编写 SSH Key 自动部署脚本
当换到一台新的电脑上时,我们肯定不想再重复一遍生成、配置、测试 SSH Key 的过程,所以可以把已经生成的密钥对文件复制出来,并通过 Shell 脚本自动复制到目标目录。在终端中执行以下命令:
1 | mkdir GithubKey |
在打开的编辑界面中输入以下内容,并保存退出:
1 |
|
第一行设置了 Shell 解释器的路径,可以根据具体情况进行调整;第二行将 Git 配置文件复制到 ~
目录下,即 此处 配置的 GitHub 用户名和邮箱;第三行将之前生成的 SSH Key 文件拷贝到 ~/.ssh/
目录下;第四行通过 ssh 命令测试与 GitHub 的连通性。
执行上述命令会生成 GithubKey
文件夹,然后将 ~/
目录下的 .gitconfig
文件及 ~/.ssh/id_rsa
文件(即上文生成并在 GitHub 网站上配置好的 SSH Key 文件)拷贝到 GithubKey/
目录中。
只要将该目录(也可打包为 zip 文件便于传输)拷贝至新环境下,安装完 Git 工具后,进入目录中执行该脚本文件,即可自动完成 Git 的配置。
后记
本来想一篇文章就把这个内容全部记完,但没想到单单一个 Git 与 GitHub 的配置就那么多内容,所以还是拆分成两篇吧,第二篇 在这里,先吃饭去了~