生产环境的sftp, 前两天通过客户端登陆sftp_user1的时候,报错:
Subsystem request failed on channel 0
Couldn't read packet: Connection reset by peer
情况说明,
- 同一个sftp服务下的其他用户都可以正常登陆和使用, 只有这一个用户报错;
- sshd配置文件近期没改过;
- sftp_user1之前一直在正常使用,从前几天开始突然不能登陆;
- 尝试用错误的密码登陆sftp_user1,会提示鉴权错误,与正确的密码报错信息不同。
环境情况:
CentOS Linux release 7.4.1708
ssh配置文件中关于sftp子模块的配置: Subsystem sftp internal-sftp -u 0002
ssh配置文件中关于sftp_user1的配置:
Match User sftp_user1
ChrootDirectory /alidata1/sftp/user1
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
我昨天找了半天没找到问题发生的原因,只能先删掉sftp_user1用户,然后又创建一个,重新设置了下文件夹权限,暂时解决了这个问题。
各位大佬,请教一下有人碰到过类似的问题吗? 能否帮忙分析下是什么原因呢?
有这两个可能:
1.有可能是文件权限问题问题,/alidata1/sftp/user1)的所有文件和文件夹的权限你有没有。特别是,ChrootDirectory的根目录属于root用户并且不允许其他用户有写入权限。
2.检查一下次你的系统日志(/var/log/secure 和 /var/log/messages),查找sftp_user1登录相关的错误或警告信息