Hexo 在 github 和 coding net 双线部署

文章目录

    • 密钥生成和配置
      • ssh 生成密钥对
      • 添加公钥
      • 密钥配置
      • 密钥配置成功测试
    • Hexo 部署配置
    • 域名配置
      • 域名提供商配置
      • Github 和 Coding net 配置
    • 参考

密钥生成和配置

ssh 生成密钥对

cd ~/.ssh
ssh-keygen -t rsa -b 4096 -f id_rsa.github -C "sshgithub"

ssh-keygen -t rsa -b 4096 -f id_rsa.codingnet -C "sshcodingnet"

添加公钥

将生成的 id_rsa.github.pubid_rsa.codingnet.pub 公钥分别添加至 github 和 coding net 账户中

密钥配置

~/.ssh 目录下,添加如下配置文件,文件名 config

# github
Host github.com
HostName github.com
AddKeysToAgent yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.github
User [UserName]

# coding net
Host e.coding.net
HostName e.coding.net
AddKeysToAgent yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.codingnet
User [UserName]

密钥配置成功测试

ssh -T [email protected]
ssh -T [email protected]

Hexo 部署配置

在 hexo 根目录下,配置 _config.yml 文件

deploy:
  type: git
  repo:
    coding:
      url: [coding net repo url]
      branch: [coding net repo branch]
    github: 
      url: [coding net repo url]
      branch: [coding net repo branch]

需提前安装 hexo-deployer-git 插件,采用如下命令:

npm install hexo-deployer-git --save

域名配置

分别为 coding net 以及 github 上部署的网站,配置子域名 iblog.example.name (用于 coding net) 和 blog.example.name (用于 github)

域名提供商配置

Cname 记录

主机 (host) 指向
blog [原来 github 主页地址, github 提供]
iblog [原来 coding net 主页地址, coding net 提供]

Github 和 Coding net 配置

在 github 中,由于每次部署会覆盖掉先前的文件,导致之前设置的域名设置失效,因此解决方案是: 在 hexo 根目录下 source 文件夹中,添加文件 CNAME,文件内容如下:

blog.example.name

对于 coding net,在仓库的静态网页设置中,进行绑定即可

这样的做法会导致 coding net 仓库中出现 CNAME 文件,感觉有点怪,但是不知道怎么解决

参考

  1. https://github.com/hexojs/hexo-deployer-git
  2. https://www.freebsd.org/cgi/man.cgi?query=ssh_config

你可能感兴趣的:(Hexo)