一个SSH 公钥登录失败的问题及解决经验
2017-09-27 18:39
447 查看
一直使用阿里云的Centos做服务器,最近在服务器上新建了一个用户,为了免去每次SSH都要输入密码的麻烦,我通过 下面的命令为该用户建立SSH公钥/私钥 登录认证, 本来是个很简单的操作,没想到竟然出现了问题!
![](https://s4.51cto.com/wyfs02/M01/A6/41/wKioL1nLf7-S8ukRAAtvll2xhvk060.png)
通过上述的SSH -v 命令可以看到,客户机已经把私钥发送到服务器端,但在服务器端没有验证成功,所以问题应该位于服务器端。通过反复的Google,找到一些线索, 有的说是SELinux的原因, 但阿里云的CentOS服务器上并没有启用SELinux. 有的说是.ssh 目录以及authorized_key的权限问题,我把相关的文件和目录权限放的更加宽松,但还是失败!没有办法,看log吧。CentOS 6的SSH登录信息记录在/var/log/secure文件中,找到下面的重要信息:
![](https://s1.51cto.com/wyfs02/M02/07/90/wKiom1nLgADwsQnNAAWH7uN1IcA704.png)
服务器端的错误: “bad ownership or modes for directory…”有了具体的错误信息,再次求助于Google, 原来我把 .ssh目录的权限设置成了775 (当时认为权限越宽松越不会有问题,哎),而系统安全方面,对于这个存放公钥的目录的权限要求是只有本人才可以读写的,应该是700!否则,缺省的情况下会拒绝进行authentication. 改成700后,再次SSH登录,问题解决!通过这个小事情(折腾了我好几个小时其实), 学到了:1. 仔细看log是发现问题原因的很重要的手段2. 有的时候,权限不是越宽松就一定不影响具体操作, SSH公钥认证必须设置合适的权限 : .ssh目录的权限为 700, authorized_keys的权限为600
1 //客户端的linux机上 2 3 ssh-keygen 4 5 scp ~/.ssh/id_rsa.pub aaa@ServerIP:~ 6 7 //服务器上 8 9 用aaa用户登录 10 11 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys配置完毕后,在客户机上通过ssh登录,竟然还提示要输入密码!? 因为其实以前已经配置过好几次SSH公钥登录,从来没有出现过问题。这一次很意外。反复检查了几遍也没有找到原因。通过下面的debug方式得到信息如下:
1 ssh -v aaa@serverIP
![](https://s4.51cto.com/wyfs02/M01/A6/41/wKioL1nLf7-S8ukRAAtvll2xhvk060.png)
通过上述的SSH -v 命令可以看到,客户机已经把私钥发送到服务器端,但在服务器端没有验证成功,所以问题应该位于服务器端。通过反复的Google,找到一些线索, 有的说是SELinux的原因, 但阿里云的CentOS服务器上并没有启用SELinux. 有的说是.ssh 目录以及authorized_key的权限问题,我把相关的文件和目录权限放的更加宽松,但还是失败!没有办法,看log吧。CentOS 6的SSH登录信息记录在/var/log/secure文件中,找到下面的重要信息:
![](https://s1.51cto.com/wyfs02/M02/07/90/wKiom1nLgADwsQnNAAWH7uN1IcA704.png)
服务器端的错误: “bad ownership or modes for directory…”有了具体的错误信息,再次求助于Google, 原来我把 .ssh目录的权限设置成了775 (当时认为权限越宽松越不会有问题,哎),而系统安全方面,对于这个存放公钥的目录的权限要求是只有本人才可以读写的,应该是700!否则,缺省的情况下会拒绝进行authentication. 改成700后,再次SSH登录,问题解决!通过这个小事情(折腾了我好几个小时其实), 学到了:1. 仔细看log是发现问题原因的很重要的手段2. 有的时候,权限不是越宽松就一定不影响具体操作, SSH公钥认证必须设置合适的权限 : .ssh目录的权限为 700, authorized_keys的权限为600
相关文章推荐
- ssh免密登录的一个问题解决方法
- 新安装的OpenSuse11.3, 用Xshell基于ssh的远程登录失败问题的解决
- 解决ssh添加用户公钥到~/.ssh/authorized_keys文件后任然无法无密码登录的问题
- ssh登录远程主机失败的问题解决(REMOTE HOST IDENTIFICATION HAS CHANGED)
- freebsd ssh 服务器登录失败问题的解决
- 开启ssh------解决远程登录失败的问题
- ssh配好无密码登录(RSA公钥)后,还要密码登录的问题的解决思路
- GIT 免密登录解决多账户问题,涉及 SSH 私钥/公钥
- SUSE ssh登录慢解决办法,ssh登录失败,但是strace一下就好了的分析查询 第一次ssh,路由的问题
- OpenSuSE的ssh无法使用密码登录问题的解决办法
- 解决Ubuntu SSH登录时过慢的问题(续)
- 解决ssh登录Ubuntu乱码的问题
- 彻底解决 CrystalReports 登录失败问题
- ssh免密码自动登录及相关问题解决
- 解决ssh远程登录unix服务器时vi/vim的方向键在编辑模式不能用的问题
- Windows Live Messenger 2009登录失败的一个解决办法
- 解决问题:HTTP 错误 401.1 - 未授权:登录失败【转】
- 彻底解决 CrystalReports 登录失败问题 (vs.net 2003)
- 解决Ubuntu SSH登录时过慢的问题
- 彻底解决 CrystalReports 登录失败问题