摘要:这里其实也是很清楚的提示【请确保您拥有正确的访问权限】所以这里是权限的问题。

首先我们先看一下我使用了 [hexo d]的命令后的错误提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
The file will have its original line endings in your working directory
On branch master
nothing to commit, working tree clean
ssh: Could not resolve hostname YourName(这个是你的用户名): Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (E:\myblog\sxxc\node_modules\hexo-util\lib\spawn.js:52:19)
at ChildProcess.emit (events.js:198:13)
at ChildProcess.cp.emit (E:\myblog\sxxc\node_modules\cross-spawn\lib\enoent.js:40:29)
at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)

看到这里我需要强调一点,这篇文章时需要你已经建立好了hexo+GitHub一段时间后再使用出现的以上错误

还有请一定注意,网上也有很多的解决方法,但是大多数都是说,你应该在你的博客文件下打开【git bash】也就是你的命令行

好了我们开始解决,开始我以为是公钥私钥的问题,我重新生成了(其实是没有必要的,你已经配置好的秘钥是不需要重新配置单额)

费了好多的周折终于找到了原因,这里错误提示的权限问题,其实就是连接不上而已,
最开始建立的时候我使用的hexo2.0,现在已经升级到3.8.0(也不知道啥时候升级到额)

这里请使用[hexo v]来查看你的版本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ hexo v
hexo: 3.8.0
hexo-cli: 2.0.0
os: Windows_NT 10.0.17763 win32 x64
http_parser: 2.8.0
node: 10.16.0
v8: 6.8.275.32-node.52
uv: 1.28.0
zlib: 1.2.11
brotli: 1.0.7
ares: 1.15.0
modules: 64
nghttp2: 1.34.0
napi: 4
openssl: 1.1.1b
icu: 64.2
unicode: 12.1
cldr: 35.1
tz: 2019a

我们现在来到你的博客所在的文件夹中打开[_config.yml]文件,这个是你配置你博客的地方你相信你不会告诉我你找不到的

先来查看一下我2.0的时候是怎么写的 [deploy]

1
2
3
4
5
6
# Deployment 这里一定注意格式要中间有空格,否则会报错【映射项的严重缩进】FATAL bad indentation of a mapping entry
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@suxiexingchen:suxiexingchen/suxiexingchen.github.io.git
branch: master

对没错就是这个问题,2.X的时候这样写可以,现在3.X不行了需要改成这样,你需要把如下的[suxiexingchen]改成你的

1
2
3
4
5
6
# Deployment 这里一定注意格式要中间有空格,否则会报错【映射项的严重缩进】FATAL bad indentation of a mapping entry
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: git@github.com:suxiexingchen/suxiexingchen.github.io.git
branch: master

其实到这里就已经可以了,你再次去执行[hexo d]你会惊奇的发现可以了,当然也没有什么可神奇的

如果你想要重新设置你的SSH key,那么继续看

为什么要配置这个呢?因为你提交代码肯定要拥有你的github权限才可以,但是直接使用用户名和密码太不安全了,所以我们使用ssh key来解决本地和服务器的连接问题。

$ cd ~/. ssh #检查本机已存在的ssh密钥

如果提示:No such file or directory 说明你是第一次使用git。

生成秘钥,然后连续3次回车,最终会生成一个文件在用户目录下,打开用户目录,找到.ssh\id_rsa.pub文件,记事本打开并复制里面的内容,打开你的github主页,进入个人设置 -> SSH and GPG keys -> New SSH key

ssh-keygen -t rsa -C "邮件地址"

删除原来的,再新建好了,完成

hexo-error-001

测试是否成功

$ ssh -T git@github.com # 注意邮箱地址不用改