在部署本地博客到服务器时,按照步骤首先创建密钥,然后把公钥粘贴到到服务器文件中,按理来说已经配置成功了。事实上来说也应该这样,但是!早晚有一天会发现事情不是这么简单,明明已经配置好了公钥,却由于各种原因会导致我运行还是需要密码登录。
由于我不止一个远程仓库,所以我本地保存了多对密钥,最开始我以为问题出在密钥混淆。于是我按照这篇博客的方法,配置了文件,却发现还是不行。于是我把重心放到日志文件上,想通过日志看出一些端倪。
讯享网
选项可进入ssh调试模式,v越多调试信息越详细,将日志复制到编辑器中查看,截取如下:
讯享网
可以看到这一行,说明数据包没有发送过去,而下一行由于公钥验证未通过,就直接换成密码登录了。我找来了正确登录的ssh(数据已经脱敏)
可以看到正确登录的时候会直接提示二者的差别就在于服务器到底收没收到公钥。
为了验证这一点,我们登录服务器,监听系统安全日志,在这里会记录SSH登录相关的日志。
讯享网
再次本地连接服务器:
查看服务器日志,会发现有这一条(数据已脱敏):
讯享网
那就豁然开朗了,是文件的权限问题导致了远程无法连接。
我们查看路径的权限,并且查看属主和属组是否是用户
然后查看目录的权限,正常的话权限应该是700,如果不是,则修改
讯享网
修改属组
修改属主
讯享网
再次登录,免密成功。
下面总结出一个常用的排查事项:
图示:

检查目录

检查

检查目录权限

该踩的坑还是要踩,最大的收获就是看日志太有用了,本地的日志看不出,但是服务器上的系统安全日志把问题描述得清清楚楚。
希望对大家有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/176015.html