关于Hexo博客的SSH部署问题。弄了一下午,总算是搞明白了。
我的博客是同时部署在GitHub和Coding中的。配置文件如下:
GitHub是通过HTTPS的方式部署的,因为我使用的是GitHub的客户端GitHub与Git Shell,不需要配置就可以免密码Push.但Coding不一样,我要是想通过HTTPS协议Push,每次都要输入密码,因此我使用的是ssh公钥的方式。
这是Coding官方配置文档。
配置成功后,一直都没有问题。但最近当我hexo deploy时,github可以成功部署,但coding总是出问题。问题如下图:
然后我尝试能否ssh连接到coding,如下:
我最初以为是公钥的问题,删除了coding上的公钥,重新生成了一个并添加到Coding中,无果。上网查了半天,都没有找到原因(期间想改成HTTPS协议,但并没有成功,我好菜啊.jpg)。最后将问题与截图发到了Coding讨论中,收到如下回答:
我修改了一下dns,竟然真的成功了。
Hello jiayuzun! You’ve connected to Coding.net via SSH successfully!
但这并不能真正解决问题。因为我的网络为校园网,需要使用学校的dns:202.204.105.1,否则不能上网。但这让我知道了问题所在,我便尝试使用Coding.net提供的443端口的SSH服务。先尝试一下能不能用:
确实能用,当我将其中的443改成22时就会显示连接超时。
您就可以通过 ssh://git@git-ssh.coding.net:443/{username}/{reponame}.git 的形式进行Git操作了。
SSH默认端口为22,可以通过修改SSH配置文件默认使用该方式进行Git操作。只需要修改~/.ssh/config文件即可。
没有的话可以自己创建一个;
touch config
然后修改如下图:
再次尝试建立链接,测试是否配置正确,如下:
然后就可以成功使用hexo deploy了。