1. 问题
在XShell中使用非root账号(z)密钥登录远程CentOS 7,使用在里面使用su获取root权限一顿软件安装瞎操作。结果导致ssh掉线后无法连接上了。
XShell中提示
Connecting to 47.114.83.*:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(zngw) at 09:39:55.
2. 追踪
用的是阿里云,还好可以从后台用VNC使用root账号登录(ssh配置了PermitRootLogin no,且非root账号没设置密码)。
登录后直接查看sshd的日志信息 tail /var/log/secure
May 14 09:45:33 iZbp1h3ipsp19sgo774lxuZ sshd[28106]: Authentication refused: bad ownership or modes for directory /home/z
May 14 09:45:34 iZbp1h3ipsp19sgo774lxuZ sshd[28106]: error: Received disconnect from 122.235.251.68 port 2107:0: [preauth]
May 14 09:45:34 iZbp1h3ipsp19sgo774lxuZ sshd[28106]: Disconnected from 122.235.*.* port 2107 [preauth]
3. 原因
按字面意思就是目录权限配置错误了,检查一下非root用户(z)所在的目录权限,home/z
成了775,这就有问题了。
drwxrwxr-x 26 z z 4096 May 14 00:00 z
- 用户目录权限为 755 或者 700,就是不能是77x。
- .ssh目录权限一般为755或者700。
- rsa_id.pub 及authorized_keys权限一般为644或600
- rsa_id权限必须为600
解决
修改目录权限就可以了
chmod g-w /home/z
chmod 700 /home/z/.ssh
chmod 600 /home/z/.ssh/authorized_keys