1.查看是否需要更新openssh版本
ssh -V // 如果版本过低,可以使用 yun update 进行更新
2.创建用户和用户组
// 创建sftp组
groupadd sftpgroup
// -M 表示创建用户时不生成对应home目录,-s /sbin/nologin 表示sftp用户不能登录系统
useradd -g sftpgroup -M -s /sbin/nologin sftpuser
// 修改sftp用户密码
passwd sftpuser
3.修改配置文件sshd_config
vi /etc/ssh/sshd_config
将下面这行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
## 在文件末尾添加如下几行
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
4.使用root用户新建用户目录/sftp/sftpfile,并指定相应的目录权限
mkdir -p /sftp/sftpfile //-p 表示parents,即递归创建目录
usermod -d /sftp/sftfile sftpuser // -d 表示修改用户home目录
// 设置目录权限,设置成其他权限会报错
chown root:sftpgroup /sftp/sftfile
chmod 755 /sftp/sftpfile
// 设置sftp用户可以操作的目录
mkdir /sftp/sftpuser/deb
mkdir /sftp/sftpuser/rpm
mkdir /sftp/sftpuser/tar_gz
chown sftpuser:sftpgroup /sftp/sftpuser/deb
chmod 755 /sftp/sftpuser/deb
chown sftpuser:sftpgroup /sftp/sftpuser/rpm
chmod 755 /sftp/sftpuser/rpm
chown sftpuser:sftpgroup /sftp/sftpuser/tar_gz
chmod 755 /sftp/sftpuser/tar_gz
5.重启ssh
systemctl restart sshd.service
6.验证安装是否成功
sftp [email protected]