记一次debian ssh免密登录排障过程
背景
计划在本地win11系统和远程开发机上做个ssh免密登录,之前有跟着百度做过2-3次的经验,但是由于时间太久很多细节几乎忘记,
只能大概记得生成一对密钥,然后公钥放在服务器,私钥放本地做验证就好了。
然后就简单百度了一下,在debian上的~/.ssh目录中创建了一个authorized_keys文件夹,然后把公钥丢里面,然后配置MobaXterm登录。
结果是登录失败
想着没有配置错误为什么会没有免密成功呢?
解决思路:
ps: 确定了公钥和私钥是有效没问题,因为在其他机器上是可以用。
首先想到的思路是按照百度就当是白板机,全部重新来一遍,这样肯定没有问题。
第二个思路是查看日志来排错。
解决方式选择第二种,
通过查看 /var/log/auth.log文件的日志定位错误。
错误问题是:
User qfz authorized keys /home/xxx/.ssh/authorized_keys is not a regular file
翻译一下就是:授权密钥不是常规文件
那么问题多半就是出在authorized_keys文件上。
把相关键字在论坛搜一下https://serverfault.com (百度搜到的有效信息很低,技术问题不建议使用百度来搜索解决,百度搜索前三条没有应该果断换其他的搜索方式)
解决问题参考链接:
https://serverfault.com/questions/418797/ssh-from-putty-to-debian-authorized-keys-is-not-a-regular-file-error
issues中大佬的回答很直接了,就是说这个报错的原因是authorized_keys命名的不应该是个文件存在于~/.ssh/文件夹中。
看到这里恍然大悟原来搞错了authorized_keys应该是文件而不是文件夹。
知道问题了解决方式就是将原有authorized_keys下的公钥移除了到./ssh中,然后删掉authorized_keys文件夹,将之前上传的公钥命名改成authorized_keys。
然后就完美解决了。