Ssh_sftp访问权限

限制用户连接sftp只能访问指定的目录

  1. 新建用户,修改密码

    useradd ftpuser
    passwd ftpuser
    
  2. 设置 ssh ,注意 /data/ftp的上级目录的权限是管理员。 如果设置 ChrootDirectory %h 则为用户主目录

    cd /etc/ssh 
    cp sshd_config{,.bak}
    vim sshd_config
    
    #编辑 
    #Subsystem      sftp    /usr/lib/openssh/sftp-server
    Subsystem sftp internal-sftp
    Match User ftpuser
    ChrootDirectory /data/ftp
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    
    
  3. 重启 测试

    service sshd restart
    

补充

  1. 如果多用户 可以设置用户组 Group 如下

    useradd -g sftp -d /data/ftp1 -s /sbin/nologin ftp1  #添加新用户组”sftp“和用户"ftp1" 
    
    Match User user1
    ChrootDirectory /data/ftp
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    Match Group sftp
    ChrootDirectory /data/ftp1
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    
    
  2. sftp访问的目录权限上至一直到顶级根目录 ,权限最大为755不可为777 否则出现错误 ”Connection reset by peer“