最近公司网络比较艰苦,那天写了一个文章,执行hexo g -d,正常生成了public文件,但是一直发布不成功,记录一下我解决的过程
1. 问题产生操作步骤
文章写完
执行
hexo s --watch预览页面效果,修改部分细节
执行
hexo g -d出现错误提示,提示
1 | delete mode 100644 placeholder |
2. 尝试解决过程
2.1 尝试一
执行
hexo g,public文件夹生成成功执行
hexo d,控制台出现错误提示和上文一样卒
2.2 尝试二
- 修改项目根文件夹下的
_config.yml文件,修改请求地址属性名,将repository修改为repo。
修改前
1 |
|
修改后
1 |
|
执行
hexo g -d,控制台出现错误提示和上文一样卒
2.3 尝试三
- 修改项目根文件夹下的
_config.yml文件,请求仓库链接方式,将原有的http请求链接修改为SSH请求模式。
修改前
1 |
|
修改后
1 |
|
- 执行
hexo g -d,出现错误提示。
1 | Permission denied (publickey). |
- 卒
2.4 尝试四
保存上文修改修改项目根文件夹下的
_config.yml文件中Deployment请求为SSH请求模式重新生成
SSH在控制台执行
ssh-keygen-t rsa -C {你的邮箱地址}会出现三次询问过程,一般就直接默认了
生成成功
1 | $ ssh-keygen-t rsa -C XXXX@XXXX.com |
访问上文的公钥地址
c/Users/Administrator/.ssh/id_rsa复制
id_rsa.pub文件中内容。访问
https://github.com/settings/keys,选择New SSH Key按钮在
SSH keys / Add new中,主要需要填写两个内容,一个是将要新建的SSH的title,相当于这个SSH的alias,用于区分不同SSH;一个是需要填写的SSH Key内容。SSH Key输入框中会有默认提示,Begins with 'ssh-rsa', 'ssh-dss', 'ssh-ed25519', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', or 'ecdsa-sha2-nistp521',即这个SSH Key必须要以ssh-rsa,ssh-dss,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, 或者ecdsa-sha2-nistp521。将从
id_rsa.pub文件中复制的内容,粘贴到SSH Key输入框。选择
Add SSH key按钮github新建SSH key完成在本地编辑器中添加全局用户设置
1 | $ git config --global user.name {你的全局呢称} |
- 在本地编辑器控制台中进行验证
SSH是否添加成功
1 | $ ssh -T git@github.com |
- 在
blog所在项目根文件夹,执行hexo g -d,执行一切顺利。
1 | INFO Deploy done:git |
3 总结
- 感觉在远程仓库这块,网络是个很大因素,决定你是否能够成功访问,和成功发布。
- 之前用http请求没感觉,现在网络不太好,就很明显了。
- http记得是基于TCP面向连接的,要求服务器可以保持持续连接状态
- 面向连接的请求,保证了数据的安全性,但是对于网络条件要求更高
- 但是这边SSH链接请求,似乎对网络条件要求低一些。