GitHub部署Hexo问题总结

之前有看过好多网友都在GitHub有搭建过博客,于是今天抽空自己也部署了一个Hexo在自己的GitHub上,把遇到的一些问题总结一下,避免以后犯错。以下演示基于MacOS 10.11.5环境。

声明下文内的 “{username} = 你的GitHub登录名”

GitHub端

1、配置SSH Keys

终端里生成RSA Key

sudo ssh-keygen -t rsa -C "{username}@github.com"

在Mac环境下,这里一定要使用root权限生成SSHKey,因为后面部署会需要root权限。
之前遇到个一个情况,第一次可以使用Hexo部署,没有报错,但之后就不行了,后来基于root重新生成的Key才解决。
FATAL Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
这条解决方法,要感谢这位大神的经验

连续3次回车,最终会生成一个文件在用户目录下,

sudo vim /var/root/.ssh/id_rsa.pub

复制里面的内容。

打开你的github主页,进入 Personal settings -> SSH and GPG keys -> New SSH key

Title随便填,将刚刚复制的那串Key粘贴到Key里文本框里,并点击Add SSH Key。

2、配置github用户名、邮箱

git config --global user.name "{username}"

git config --global user.email "xxxx@outlook.com" // GitHub注册邮箱

3、配置github在线仓库

仓库名的格式必须为 {username}.github.io
而仓库分支必须使用 master ,切记这里不要使用gh-pages分支!!!


Hexo端

1、配置 _config.yml 的部署选项
deploy:

type: git //这一项在新版本里必须是git不能是github 

repository: git@github.com:f1tz/f1tz.github.io.git  

branch: master
2、执行hexo d 报错 :Deployer not found: git

先安装 hexo-deployer-git.

$ npm install hexo-deployer-git --save

参考Hexo部署文档

3、执行hexo d报错: Error: EACCES: permission denied

使用sudo 命令执行 hexo d 解决。

4、执行hexo d报错: FATAL Permission denied (publickey).

解决办法参见本文第一条