主机系统:centos7
因为sftp基于ssh协议,因此咱们无需安装多余的包,只须要进行相应的配置便可。css
#家目录默认在/home/sftp_user sudo useradd -m sftp_user:sftp_user #将家目录的属主改成root sudo chown root:root /home/sftp_user #将家目录的权限改成755 sudo chmod 755 /home/sftp_user #创建上传目录 sudo mkdir -p /home/sftp_user/upload #创建下载目录 sudo mkdir -p /home/sftp_user/download #切换上传、下载两个目录的属主为sftp_user sudo chown -R sftp_user:sftp_user /home/sftp_user/upload sudo chown -R sftp_user:sftp_user /home/sftp_user/download
文字版以下,可直接参考其中未注释内容:shell
# override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User sftp_user ForceCommand internal-sftp ChrootDirectory /home/sftp_user AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no PasswordAuthentication yes # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server #UseDNS no #AddressFamily inet PermitRootLogin yes #SyslogFacility AUTHPRIV PasswordAuthentication no
sysetmctl restart sshd
至此,sftp的搭建就完成了。
centos
固然,这其中有几个点须要格外注意:服务器
1. 在重启sshd的时候,sshd很容器起不来,会致使客户端连不上去。因此,咱们须要注意2点:ssh
1.1 备份/etc/ssh/sshd_config文件,若是ssh真的挂了,就赶忙恢复到之前的状态。ide
1.2 多开几个console,总要保证有一个console连获得主机,能够保证机器有能力恢复到从前状态。测试
2. 搭建sftp服务器的时候,咱们须要注意3点:centos7
2.1 ChrootDirectory 设置的目录权限及其全部的上级文件夹权限,属主和属组必须是 root。3d
2.2 ChrootDirectory 设置的目录权限及其全部的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是 755。rest
2.3 ChrootDirectory 下面的目录的属主须要设置成sftp user,这样这个用户才能够拥有读/写/执行权限。