配置了SSH后仍然需要输密码的情况

以及可能连带出现的fatal: unable to access等问题

今天尝试hexo d失败(本地预览成功),报错为fatal: unable to access ‘https://github.com/…,如下图所示。

一开始看到Fatal to connect to github.com port 443: Time out以为是没用魔法或者防火墙屏蔽了端口之类的原因导致的,于是更换网络环境之后,此行报错消失,但仍旧无法deploy成功,并且还跳出一个“Open SSH”的对话框要求输入Github的用户名及密码,似乎SSH失效。不过我上次也遇到输密码的情况,但是输入密码之后deploy成功,就一直没管这个事,结果今天直接不能deploy了。

先是按照Error: Spawn failed的条目在上网搜了一下,发现了https://blog.csdn.net/HTL2018/article/details/106876940 中的方法即:

  1. 删除.deploy_git文件夹;
  2. 输入git config --global core.autocrlf false
  3. 然后,依次执行:
    hexo clean
    hexo g
    hexo d

该方法的确能够让hexo d成功,虽然最后还是要输一遍密码,但是经再次尝试,hexo d中故意输错一次github密码,出现fatal: Authentication failed for…的报错,再次尝试hexo d则回到图中的状态。更有文章指出,该方法似乎仅为一次性作用,可见该方法并不能够彻底解决该问题。因为每次都要输入烦人的密码,于是怀疑是SSH哪里出了问题。

尝试重新部署SSH。重新给生成了一遍SSH并再次向Github的仓库添加了新的SSH,结果并没有太大改变,还是需要输密码,输入对的密码之后的确是可以上传成功,但是但凡输错一次密码之后,hexo clean、hexo g、hexo d之后便进入nothing to commit, working tree clean的状态,等待十几秒后又回到图中的情况,连输密码的框都不跳了。

查找了有关SSH的问题后发现,hexo的配置文件 _config.yml中,deploy属性一栏,需要把https协议修改为为ssh协议,即从:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/yonghuming/yonghuming.github.io.git
branch: master`

修改为:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:yonghuming/yonghuming.github.io.git
branch: master`

(注意要改的地方还有.com后面那个冒号)

这一项改完之后保存,hexo clean、hexo g、hexo d。立刻部署成功,再没有密码框和奇怪的报错了。

问题似乎解决了。但还有一个问题我无法理解,这个_config.yml的文件是从以前那个旧机器上就在使用的,我不记得那个旧机器修改过此项内容,但为什么旧机器的SSH仍生效工作,也没遇到过这些错误?


算了我也懒得想太多了。今天还解决了一个小问题,即修改了网页标题名称。该条目由 themes/主题/layout/_head.pug 里的条目控制,发现这个主题的网页标题是优先显示为文章页面、次级栏目(如归档等等)的标题,如果是主页的话则显示为博客的title名。并且后面一律加上一个博客的subtitle名。觉得这样的标题实在太长,副标题出现在网页上也很麻烦,因为我不想让浏览器标签栏含有的信息太多(比如某个好事的家伙来偷窥你的屏幕)。修改见效,并且还仿照A站B站的做法加了一个卖萌向颜文字表情,然后发现竟然能加emoji?..最后反倒是变得更花哨了…

  • 版权声明: 本博客所有文章著作权归作者所有,禁止任何形式的转载。
  • Copyrights © 2019-2024 Caelica

请我喝杯咖啡吧~