CentOS 8 搭建sftp服务器

Posted Dylan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 8 搭建sftp服务器相关的知识,希望对你有一定的参考价值。

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

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

ssh -V

创建用户分组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需要匹配创建的文件夹名

设定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服务器的主要内容,如果未能解决你的问题,请参考以下文章

Linux Centos 6.6搭建SFTP服务器

centos 搭建 sftp 服务器

Centos 7.4上搭建sftp服务

sftp搭建配置

Centos6搭建sftp服务器

CentOS7.6服务器搭建SFTP服务及JAVA工具类