sftp 直接使用ssh端口(不会占用其它端口),可以比较方便和安全的共享文件。
下面记录一下它的搭建方式~

添加用户组

groupadd sftp

添加用户

sudo useradd -g sftp -s /usr/sbin/nologin -M sftp

修改用户密码

修改sftp用户的密码

创建用户目录

cd /home
mkdir sftp
chown root:sftp sftp
chmod 755 sftp

修改ssh相关配置文件

sudo vim /etc/ssh/sshd_config 

#Subsystem      sftp    /usr/libexec/openssh/sftp-server  
Subsystem       sftp    internal-sftp 

Match User sftp  
        X11Forwarding no  
        AllowTcpForwarding no  
        ForceCommand internal-sftp  
        ChrootDirectory /home/sftp

重启服务

sudo service sshd restart  

注意

  1. 有些系统可能时/sbin/nologin,如果不确定可以看下/etc/passwd
  2. ChrootDirectory对应的目录的所有者必须是root,不然访问会有问题。详情见这里
root has to be the user which owns the chrooted dir. For the chroot to be created, you need superuser, which is why you need to have root own that directory/folder. Something about 'jailed chroot' or something. Discovered that when making a chroot jail for one of my users on a specific server at work.