sftp 配置

sftp服务部署

1)groupadd eduboss           #添加用户组

2)useradd -g eduboss -s /sbin/nologin  eduboss     #创建用户

3)passwd eduboss       #修改密码

4)vim /etc/ssh/sshd_config     #修改配置文件

#Subsystem sftp /usr/libexec/openssh/sftp-server  #注释掉

#下面的是新增的内容

Subsystem      sftp    internal-sftp 

Match Group  eduboss             #指定以下的子行配置是匹配eduboss用户组的,多个逗号隔开

ChrootDirectory /home/%u       #指定Match Group行指定的用户组验证后用于chroot环境的路径

ForceCommand    internal-sftp       #该行强制执行内部sftp

AllowTcpForwarding no                  #      

X11Forwarding no

5)chown root.eduboss /home/eduboss

6)chmod 755 /home/eduboss

7)mkdir /home/eduboss/upload

8)chown eduboss:eduboss /home/eduboss/upload

9)chmod 755 /home/eduboss/upload

10)关闭selinux服务

setenforce 0    

11)重新启动ssh服务    

systemctl restart sshd.service 

12)使用sftp登录服务器上传文件:

sftp  eduboss@ip

输入密码

13)可以使用的命令:put上传,get下载,mkdir 创建目录 , rm 删除文件,rmdir 删除目录

报错信息:

> Write failed: Broken pipe > Couldn't read packet: Connection reset by peer

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

目录开始一直往上到系统根目录为止都不可以具有群组写入权限 

上面2点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

你可能感兴趣的:(sftp 配置)