hexo d报错及原因分析
三个月没整博客,上线一顿狂改,最后部署的时候到deploy环节出错了,报错信息如下:
1 | fatal: unable to access 'https://github.com/Xihan333/Xihan.github.io.git/': Failed to connect to github.com port 443 after 21052 ms: Timed out |
初一看,这不就是代理的问题么,把没开的猫猫打开,再d!
然后一直在报错……总之大抵是代理的问题,但又不知道具体在哪里(抓狂.jpg)
最初发现这个地方没有对上(代码为正确版本)
修改后重试,依旧报错。。。
网上查了一些方法,大多是修改repo部分的url,有改成用户名:密码@github.com
的,但是没什么用,试了一种改成git@github.com:YourName/YourName.github.io.git
报错信息确实改变了
为什么不早点告诉我是ssh的问题啊啊啊,果然,登上去一看,空空如也
直接暴力解决:重新配置密钥
git bash
窗口依次输入:(注意:双引号里改为你的Github的名字和邮箱)1
2git config --global user.name "MagicConchCpp"
git config --global user.email "csuzhangyang@gmail.com"生成新秘钥:
1
ssh-keygen -t rsa -C "csuzhangyang@gmail.com"
选择文件路径,然后遇到下面这个直接回车。
1
2
3$ ssh-keygen -t rsa -C "csuzhangyang@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/lenovo/.ssh/id_rsa):文件已经存在,是否重写?输入
y
,回车。1
2/c/Users/lenovo/.ssh/id_rsa already exists.
Overwrite (y/n)? y然后设置密码什么的,不用管,直接两下回车。
新秘钥保存在
/c/Users/lenovo/.ssh/id_rsa.pub
。
打开这个文件,复制其中的的内容。
在github
中,打开setting -> SSH and GPG keys
。删除原来的,把新的复制进去,即解决。重新执行hexo d
。
你以为……到这里就结束了吗?
没用!!!!!!我要疯了啊啊啊啊啊
既然常规方法都没用,便检查一下git和github之间的链接吧(怎么现在在检查啊QAQ)
在git bash输入
1 | ssh -T git@github.com |
当看见它迟迟没有反应就知道多半得寄,果不其然
1 | ssh: connect to host github.com port 22: Connection timed out |
git连接超时,找到git的安装目录,用记事本或者VS啥的打开/etc/ssh/ssh_config
文件,在末尾加入:
1 | Host github.com |
再测试一遍!
别急,这不是还有个回车,点了……寄了
查了一下fail的原因,原因是在主机子系统每次成功ssh连接远程操作,都会把你每个你访问过计算机的公钥(public key)都记录在主机的目录/Users/icarus/.ssh/known_hosts下,当下次访问相同子机服务器时,会核对公钥。如果公钥不同,会发出警告,避免你受到DNS Hijack之类的攻击。
虚惊一场,原因是在最后一行应该输入yes后再回车,不然的话是没法继续写入的,不过因此了解了一些关于ssh的知识,也还不错(
接下来,就该尝试重新部署了
为什么我的眼里常含泪水,因为我对bug爱得深沉QAQ
总结
多写博客,不用的话数据就要生锈啦
崩溃的commit记录