CentOS7.6-搭建SFTP服务

1.需求
  • 搭建多账号SFTP,不同的用户只能够查看自己所属的目录
  • 禁止SFTP账号通过SSH连接
  • SFTP 用户demo1、demo2,所属目录:/data/sftp/demo1、/data/sftp/demo2
2.操作步骤
  • 创建目录

    mkdir /data/sftp/{demo1,demo2} -p
    

    在这里插入图片描述

  • 创建用户组sftp

     groupadd sftp
    
  • 创建用户demo1、demo2

    useradd -G sftp -d /data/sftp/demo1 -m  -s /sbin/nologin demo1
    useradd -G sftp -d /data/sftp/demo2 -m  -s /sbin/nologin demo2
    
    -G sftp :加入sftp用户组
    -s /sbin/nologin:禁止用户ssh登录
    -d /data/sftp/demo1:指定用户的根目录

    CentOS7.6-搭建SFTP服务_第1张图片

  • 修改密码

    passwd demo1
    passwd demo2
    
  • 修改配置文件sshd_config

    cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.ori.20190531
    vim /etc/ssh/sshd_config
    #下面这行注释掉#Subsystem sftp /usr/libexec/openssh/sftp-server##后面加入
    Subsystem sftp internal-sftp
    #注意,以下要 放在 本文件的最后行,否则 root用户无法登陆
    Match Group sftp
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory %h
    ForceCommand internal-sftp
    

    说明 :
      Match Group sftp 匹配sftp用户组中的用户
      ChrootDirectory %h 只能访问默认的用户目录(自己的目录),例如 /data/sftp/demo1

  • 重启ssh服务

    systemctl restart sshd.service
    
  • 设置目录权限

    chown root:sftp /data/sftp/demo1/
    chown root:sftp /data/sftp/demo2/
    
    chmod 755 /data/sftp/demo1
    chmod 755 /data/sftp/demo2
    
    #设置用户可以上传的目录upload
    mkdir /data/sftp/demo1/upload
    mkdir /data/sftp/demo2/upload
    
    chown -R demo1:sftp /data/sftp/demo1/upload/
    chown -R demo2:sftp /data/sftp/demo2/upload/
    
  • 关闭selinux

    vim /etc/selinux/config
    
    设置:
    	SELINUX=disable
    
3.测试连接
  • 测试SFTP功能
    #登录sftp
    sftp [email protected]
    #进入upload目录
    cd upload
    #上传文件
    put /root/nginx-1.15.12.tar.gz
    #查看目录下的文件
    ls
    #下载文件
    get nginx-1.15.12.tar.gz 
    
    更多sftp命令详见博文:https://blog.csdn.net/cen50958/article/details/89503723
    demo2账号同理
    CentOS7.6-搭建SFTP服务_第2张图片
  • 测试不能使用SSH功能
    ssh [email protected]
    
    CentOS7.6-搭建SFTP服务_第3张图片

你可能感兴趣的:(Linux)