解决SSH免密登录配置成功后不生效问题
<img src="https://davidli.fun/wp-content/uploads/2020/07/8f19bb4e9750fc1d08da69d6a9ac56cd.png" style="border:0px;border-style:none;width:36px;height:32px;margin-right:12px;line-height:32px" width="36" height="32" />
<p>
<a href="https://me.csdn.net/lisongjia123" target="_blank" rel="noopener noreferrer">拂晓Skyler</a>
<span style="margin:0px;padding:0px;font-weight:normal;, sans-serif;vertical-align:top;margin-right:12px;line-height:32px">2017-11-12 17:38:42</span>
<img src="https://davidli.fun/wp-content/uploads/2020/07/c4360f77d43b7f3fdc7b1e070f32dfd4.png" style="border:0px;border-style:none;width:24px;height:24px;margin-top:4px" width="24" height="24" />
<span style="margin:0px;padding:0px;font-weight:normal;, sans-serif;vertical-align:top;margin-right:12px;line-height:32px">51406</span>
<a>
<img src="https://davidli.fun/wp-content/uploads/2020/07/5dad7f82dd0d8ba01fecbf11a059a7cd.png" style="border:0px;border-style:none;vertical-align:middle;margin-right:2px;width:20px;height:20px;margin-top:0px" width="20" height="20" />
<span style="margin:0px;padding:0px;font-weight:normal;, sans-serif;vertical-align:top;line-height:32px;margin-right:0px">收藏</span>
<span style="margin:0px;padding:0px;font-weight:normal;, sans-serif;vertical-align:top;line-height:32px;margin-right:0px">
16 </span>
</a>
<span style="margin:0px;padding:0px;font-weight:normal;, sans-serif">分类专栏:</span>
<a target="_blank" rel="noopener noreferrer" href="https://blog.csdn.net/lisongjia123/category_5861289.html">
linux </a>
<a>版权<span style="font-weight:normal;font-size:12px;cursor:pointer;font-family:Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif;width:1px;height:11px"></span></a>
<img style="overflow:hidden" src="rgba(0%2c 0%2c 0%2c 0)%3b' data-evernote-id='1993' class='js-evernote-checked'%3e%3c/path%3e %3c/svg%3e" />
<h2><a name="t0"></a><a name="t0"></a>问题描述</h2>
今天配置SSH免密登录时,使用 ssh-keygen
命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址
将公钥添加到了服务器的authorized_keys文件中。紧接着用 service sshd restart
命令重启了SSH服务,但当执行 ssh 登录命令时仍然需要密码。
解决方案
一、查看系统安全日志,定位问题
执行 sudo cat /var/log/secure
查看系统的安全日志,然后再安全日志中看到SSH登录过程中提示了如下错误:
Authentication refused: bad ownership or modes for directory /home/skyler
二、解决SSH Authentication Refused问题
从日志中我们已经分析出了错误的具体原因,提示我们 /home/skyler
目录的属主和权限配置不当。然后上网查找资料得知:SSH不希望home目录和~/.ssh目录对组有写权限,于是执行以下命令进行更改:
chmod g-w /home/skyler
执行完成后,重启SSH服务再次执行ssh 登录时发现已经实现了免密登录,问题解决:
扩展说明
SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制,如果日志中提示这两个的问题,可以通过如下方式进行修改:
chmod 700 /home/skyler/.ssh
chmod 600 /home/skyler/.ssh/authorized_keys
SSH登录过程如果出现问题除了查看上述 /var/log/secure
文件外,还可以通过在 ssh 命令后添加调试参数 -vvv
来查看调试信息(eg: ssh -vvv localhost
便会以调试模式来执行本次ssh命令),以此来更好的定位问题。
暂无评论
要发表评论,您必须先 登录