SSH密钥登录突然连不上了

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
0%