第一次在Mac中配置好了hexo,执行hexo d发布的时候一直提示:
1 | Error: Permission denied (publickey). fatal: Could not read from remote repository. |
这个大部分是因为公钥配置的问题引起的。
在GitHub配置了公钥信息,但是执行sudo hexo deploy就报上面的问题,可以猜测到基本和sudo权限有关。
在执行hexo命令时,如果不加sudo,会报以下错误:
1 | Unhandled rejection Error: EACCES: permission denied, open '/Users/sheri/Developer/blog/db.json' at Error (native) |
生成公钥
前面生成公钥的命令是:
1 | ssh-keygen -t rsa -C “xxx@github.com” |
没有加sudo,生成的公钥是当前用户的,路径是/Users/sheri/.ssh。但是sudo hexo d命令执行的时候会去读取root用户的公钥,这时候root用户下的公钥肯定还没生成。
root用户生成公钥
1 | sudo ssh-keygen -t rsa -C “xxx@github.com” |
对应路径为/var/root/.ssh
重新把公钥信息配置到GitHub中,
1 | sudo cat /var/root/.ssh/id_rsa.pub |
执行
1 | sudo hexo d |
推送成功!