CentOS 8 搭建sftp服务器

先切换到root用户,下文中使用sftp作为组用户,sftpvdes作为账户使用。

因为需要用到chroot,所以openssh 版本不能低于4.8p1

ssh -V

CentOS 8 搭建sftp服务器

创建用户分组sftp

groupadd sftp

添加用户sftpvdes至组用户sftp

useradd -g sftp -s /sbin/nologin sftpvdes

注:-g后面接组;-s指定用户登入后所使用的shell,默认值为/bin/bash。

【/bin/bash】指:用户即能使用账号密码连接sftp,又能使用账号密码登录该Linux服务器;

【/sbin/nologin】指:用户只能使用账号密码连接sftp,不能使用账号密码登录该Linux服务器;对于FTP、SFTP、SMTP等程序级服务,我们一般都设置为【/sbin/nologin】。

修改sftpvdes用户的密码

passwd sftpvdes

本次设置密码 1qazxsw2

创建一个目录,来专门存放sftp相关文件

先cd到根目录

cd /

创建 sftp 文件夹

mkdir /sftp

然后为了规范一下,在针对每个账户创建一个文件夹,

上面我们创建了sftpvdes用户,再次创建一个sftpvdes文件夹

cd /sftp/
mkdir sftpvdes
cd sftpvdes

此时我们就处在了 sftpvdes 这个文件夹位置,这个文件夹可以用来存放想要上传的文件,比如在创建一个file文件家,来存放文件,或者jpg文件夹来存放图片

mkdir files

修改sshd_config的配置文件

vi /etc/ssh/sshd_config

注释掉原文档下面语句

#Subsystem      sftp    /usr/lib/openssh/sftp-server

在文档最下边添加

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

注:上面的Match Group 后面的sftp需要匹配一开始建的分组名

注:上面的ChrootDirectory 后面的sftp需要匹配创建的文件夹名

CentOS 8 搭建sftp服务器

设定Chroot目录权限

chown -R root:sftp /sftp
chmod 755 /sftp
chmod 755 /sftp/sftpvdes
chmod 777 /sftp/sftpvdes/files

重启sshd配置

service sshd restart

测试链接

CentOS 8 搭建sftp服务器

 连接成功

 

上一篇:FTP,SFTP服务器登录权限和根目录的设置


下一篇:代码风格规范