Dual deployment Hexo


写在前面

很多人在建立一个Hexo架构的博客之后可能还会开分站,例如我就用Hexo开了一个文字站主要分享一些生活心得和各种文案。但是有很多小白都不会或根本不懂得如何去建立新的Hexo网站,而网上的教程又鱼龙混杂,让人分不清好坏,甚至教程都不全,所以我想着出一篇教程给大家做个参考。
该篇教程也同样适用于连接多个git仓库
ps:由于面向小白,可能会比较啰嗦,有基础的可以直接跳过前面的从创建ssh密钥开始操作。

分析阶段

由于 github 是使用 SSH key 的 fingerprint (对应的公钥id_rsa_pub)来判定你是哪个账户,而不是通过用户名,如果是在多台电脑上使用一个账号,可以为该账号添加多个 SSH key,如果是一台电脑使用多个账号,则分别生成多个 SSH key 添加到对应的账户即可。所以本文要实现的是公号和私号在 git 上同时使用,两者互不干扰。
通俗的讲就是一个GitHub账号可以匹配多个ssh公钥,而一个ssh公钥只能链接一个GitHub仓库
所以在这里我们需要再建立一个或多个GitHub,并创建与之相对应的ssh密钥 ps:有几个GitHub仓库就建立几个ssh公钥
到这里分析就结束了,接下来开始操作ing

正式开始

建立GitHub仓库/账号

如果已经有账号或者创建好仓库跳过这一阶段

第一步:注册

进入GitHub官网 点击sign up进入注册页面输入邮箱,点击继续然后输入密码,GitHub会给你的邮箱发一封确认邮件,确认之后我们的GitHub账号就注册好了。
注册页面
输入邮箱

第二步:建立仓库

登录GitHub 依次点击右上角头像-Your repositories-New进入新建仓库页面

仓库名称建议填写与用户名一样的名称(也可以不填没有特殊要求)

都填写好了之后点击Create repository,到这里一个GitHub仓库就建好了

建立ssh密钥

打开电脑终端,也可以使用Git 我个人使用的就是Git软件
使用cd ~/.ssh切换工作目录,然后使用如下命令生成新的密钥:

ssh-keygen -t rsa -C "Your Email Address"

Your Email Address为你的邮箱地址

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/29453/.ssh/id_rsa):

这里给你的密钥起个明治(随便输入),输入完了之后回车

Enter passphrase (empty for no passphrase):

这里给你的密钥设置个密码,也可以不设置,一路回车就建立完成了~(设置了密码会再次验证一次)

添加 SSH key

打开C:\Users\用户名.ssh这个目录找到你新建立的公钥,用n++打开(密钥名称).pub后缀的这个文件并复制全部内容,
登陆github 账号,在 Settings —> SSH and GPG keys 中,点击 “new SSH key”,把公钥的内容分别添加到相应的账号中。

配置ssh双部署

修改ssh配置实现双部署

在 ~/.ssh目录下新建 config 文件,令不同 Host 实际映射到同一 HostName,但密钥文件不同。

touch config

打开confing文件加上以下内容

# one (first account)
Host one.github.com   #.github.com前面的可以自己填写
HostName github.com
PreferredAuthentications publickey
User one             #User后面的可以自己填写
IdentityFile ~/.ssh/id_rsa_one

# two(second account)
Host two.github.com   #.github.com前面的可以自己填写
HostName github.com
PreferredAuthentications publickey
User two              #User后面的可以自己填写
IdentityFile ~/.ssh/id_rsa_two

修改完后保存退出!记得保存否则不生效

修改Hexo的git

进入你Hexo的根目录打开.deploy_git.git文件夹,再此文件夹内运行Git,并运行以下代码:

git config  --unset user.name
git config  --unset user.email
git config --global --unset user.name
git config --global --unset user.email

这些代码的目的是删除之前的用户名和邮箱并取消全局用户名和邮箱

之后运行以下代码设置局部用户名和邮箱:

git config user.name "Your Username"
git config user.email "Your Email Address"

Your Username,Your Email Address分别为你的GitHub名称和你注册GitHub时的邮箱。因为使用仓库前,要通过这两项标明自己的身份,所以必须正确!!!

最后一步,也是最重要的一步,打开Hexo的_config.yml文件在git@github.com的github和@中间加上你在Host前面起的名称

例如我的:ssh配置文件内容是

# one (first account)
Host blog.github.com
HostName github.com
PreferredAuthentications publickey
User WangGang-a1
IdentityFile ~/.ssh/blog

# two(second account) 
Host wenan.github.com
HostName github.com
PreferredAuthentications publickey
User nl-anonymous
IdentityFile ~/.ssh/wenan

那么我就应该改成git@blog.github.com或者是git@wenan.github.com

到这里我的教程就圆满结束了,分别运行一下hexo d试试吧,会有神奇的效果哦~


文章作者: 逆鳞
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 逆鳞 !
评论
  目录