1,切换root用户
2,创建sftp组:groupadd sftp(已经创建,下一步)
3,创建用户并限制进入路径:useradd -g sftp -s /bin/false testuser 修改密码: passwd testuser
4,创建testuser home路径:mkdir /home/epcc/test
5,修改账号home路径:usermod -d /home/epcc/test testuser
6,进入 vim /etc/ssh/sshd_config:
注释掉:Subsystem sftp /user/libexec/openssh/sftp-server
添加: Subsystem sfto /internal-stfp
7,设置Chroot目录权限:
chown root:sftp /home/epcc/test
chmod 755 /home/epcc/test
8,重启sshd: service sshd restart
9,创建上传路径并授权 mkdir /home/epcc/test/upload
chown testuser /home/epcc/test/upload
chmod 755 /home/epcc/test/upload
10:
Vim /etc/passwd
把 bbscgl:500:500::/kssftp:/bin/false
改为 bbscgl:500:500::/kssftp:/bin/bash
11,测试
报错1:
subsystem request failed on channel 0
Couldn’t read packet: Connection reset by peer
解决方案1:
查看sshd_config文件发现这一行出现了路径错误的情况:
Subsystem sftp /usrbin/sftp-server
用
find / -name sftp-server
命令来查看具体路径然后修改此行reload ssh服务
Subsystem sftp /usr/libexec/openssh/sftp-server
解决方案2:
查看sshd_config 文件发现已经sftp-server文件路径已经正确了,可以使用如下解决方案:
Subsystem sftp /usr/libexec/openssh/sftp-server
改为:
Subsystem sftp internal-sftp
报错2:
Write failed: Broken pipe
Couldn’t read packet: Connection reset by peer
解决方案:
这个报错是目标目录所属组错误,修改所属组就好了。
用:
chown root:admin [your target folder]
就可以解决了保险点可以增加一条:
chmod 755 [your target folder]