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点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

推荐阅读更多精彩内容

  • 一、实验背景 1、基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控...
    Bogon阅读 1,986评论 0 3
  • 实现的功能: 三个用户,其中一个管理员用户和两个普通用户;管理员用户可以对普通用户的的家目录拥有写的 权限,普通用...
    无所谓_f0aa阅读 364评论 0 1
  • centos6.8环境 一、添加ssh端口 vim /etc/ssh/sshd_config 添加最后面两行,第一...
    haodevops阅读 68评论 0 0
  • 查看openssh的版本,使用ssh -V命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需...
    B_oo_m阅读 4,671评论 1 0
  • 由于SFTP是SSH的一部分(与传统的FTP没有任何关系),因此,配置SFTP不需要传统的FTP服务器软件。仅需要...
    阳明散人阅读 1,542评论 0 4