创建用户
新建一个用户
useradd sftpuser
设置密码
passwd sftpuser
设置配置文件
先备份一下
cp sshd_config sshd_config.back
注意这里的文件名是 sshd_config 不是 ssh_config
nano /etc/ssh/sshd_config
注释这一行,不然跟底下添加的冲突
#Subsystem sftp /usr/libexec/openssh/sftp-server
然后新指定sftp类型为系统自带的 internal-sftp
Subsystem sftp internal-sftp
然后我们新增一个用户的设置
#这行用来匹配用户
Match User sftpuser
#用 chroot 将用户的根目录指定到 /home/sftp,这样用户就只能在 /home/sftp 下活动
ChrootDirectory /home/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
赋权
注:必须用 root 账户进行赋权,不用 root 用户赋权 sftp 登陆不上
chown root.root /home/sftp /home/sftp/sftpuser
chmod 755 /home/sftp /home/sftp/sftpuser
给用户创建上传下载的文件夹
上面操作完sftp用户就可以登陆了
sftp -P remote_port user_name@remote_server_address[:path]
但是我们会发现不能上传,需要我们新建一个有上传权限的子目录
cd /home/sftp/sftpuser
mkdir {upload,download}
chmod a+w upload -R upload
其中,upload目录为可读写权限,sftp用户可以上传
download目录就只有读权限,可以下载但是不能上传
重启
systemctl restart sshd