从昨天开始,我的博客出了故障。在终端输入hexo d,报错:
我此前没有进行过任何修改,所以确定问题不是出在博客文件夹里的配置。初步判断是网络问题,但关闭或打开梯子、更换节点、更换梯子,都没有效果。于是开始瞎折腾。试了但没有效果的办法有:
- 重新设置用户名和邮箱
git config --global user.name "yourname"
git config --global user.email"your@email.com"
- 重设SSH Key(参考这个教程)
- 更新Hexo版本,重新安装所有npm插件
- 重新添加SSH私钥路径
ssh-add /path/to/your/private/key
折腾了一天,还是没有解决,很沮丧。男朋友报告他那边git pull出现了相同的问题,但是另一个用Hexo搭建博客的朋友却没有出现这个问题,非常奇怪。
过了一会,男朋友说问题解决了,是机场把端口22封禁了,需要把SSH端口强制改成443。于是我照葫芦画瓢。在macOS的/Users/{用户名}/.ssh文件夹下(需要开启“显示隐藏文件”)建立一个叫config的文件,添加如下内容:
Host github.com Hostname ssh.github.com IdentityFile /Users/chumiaochen/.ssh/id_rsa User git Port 443 ProxyCommand nc -v -x 127.0.0.1:7890 %h %p
|
发现还是不行,错误信息如下:
ssh_dispatch_run_fatal: Connection to UNKNOWN port 65535: Broken pipe
|
喂给GPT,叫我重新添加一下到私钥的路径:
ssh-add /Users/{用户名}/.ssh/id_rsa
|
照做了。再次hexo d,出现新的错误:
(这里不知道为什么有个右括号)
再次询问GPT,叫我在config文件里再添加两句,添加后完整文件内容如下:
Host github.com Hostname ssh.github.com IdentityFile /Users/chumiaochen/.ssh/id_rsa User git Port 443 ProxyCommand nc -v -x 127.0.0.1:7890 %h %p TCPKeepAlive yes ServerAliveInterval 120
|
再次hexo d,问题解决。