当前位置:首页 > 行业动态 > 正文

如何在CentOS 7上搭建SFTP服务器?

在CentOS 7上搭建SFTP服务器的步骤包括:安装OpenSSH服务、创建用户和目录、配置sshd_config文件、关闭SELinux策略、重启sshd服务,并验证登录。

在CentOS 7上搭建SFTP服务器是一项常见的任务,特别是在需要安全传输文件的场景中,以下是详细的步骤和相关配置:

如何在CentOS 7上搭建SFTP服务器?  第1张

一、

SFTP(Secure File Transfer Protocol)是一种基于SSH协议的安全文件传输协议,它通过加密的方式在两台计算机之间传输文件,与FTP相比,SFTP提供了更高的安全性,因为它使用SSH进行数据传输的加密和认证,本文将详细介绍如何在CentOS 7上搭建SFTP服务器。

二、机器准备

| 服务器IP | 主机名 | 系统版本 |

| 192.168.2.55 | myhost | Centos7.2 |

三、查看OpenSSH的版本

我们需要确保系统中已经安装了OpenSSH,并且版本不低于4.8p1,可以使用以下命令查看OpenSSH的版本:

ssh -V

如果输出类似以下内容,则表示OpenSSH已安装且版本合适:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

如果未安装或版本过低,请先升级或安装OpenSSH。

四、创建SFTP管理账户

1、创建账户并限制用户登录

 mkdir -p /data/sftpuser
    useradd -d /data/sftpuser -M -s /sbin/nologin sftpuser

这里我们创建了一个名为sftpuser的用户,并将其家目录设置为/data/sftpuser,同时禁止该用户通过SSH登录系统。

2、设置密码

 passwd sftpuser

根据提示输入并确认密码。

3、修改家目录权限

 chmod 755 /data/sftpuser
    chown root:sftpuser /data/sftpuser

4、创建上传文件夹并授权

 mkdir /data/sftpuser/upload
    chmod 755 /data/sftpuser/upload/
    chown -R sftpuser:sftpuser /data/sftpuser/upload/

五、修改sshd_config配置文件

编辑/etc/ssh/sshd_config文件,添加或修改以下配置:

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

这些配置的作用是:

Subsystem sftp internal-sftp:指定SFTP子系统为internal-sftp。

Match Group sftpuser:匹配用户组sftpuser。

ChrootDirectory /data/sftpuser/%u:将用户锁定在其主目录下。

ForceCommand internal-sftp:强制用户使用internal-sftp命令。

AllowTcpForwarding no:禁用TCP转发。

X11Forwarding no:禁用X11转发。

六、关闭Selinux策略

为了避免Selinux策略影响SFTP的使用,我们需要将其设置为宽松模式:

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
getenforce

七、重启sshd服务

完成上述配置后,重启sshd服务以使更改生效:

systemctl restart sshd

八、验证SFTP登录

使用以下命令测试SFTP登录:

sftp -P 22 sftpuser@127.0.0.1

输入密码后,如果能够成功登录并看到类似以下的信息,则表示SFTP服务器搭建成功:

Connected to 127.0.0.1.
Changing to: /data/sftpuser/upload
sftp>/home/myuser>$ ls

九、使用FileZilla连接SFTP服务器

除了命令行工具外,我们还可以使用图形化工具如FileZilla来连接SFTP服务器,在FileZilla中,输入主机IP地址、sftpuser用户名、密码以及端口(默认为22),然后点击“快速连接”即可。

十、常见问题及解答

Q1: SFTP用户无法登录怎么办?

A1: 如果SFTP用户无法登录,请检查以下几点:

确保sshd服务正在运行。

确保防火墙允许22端口的流量。

检查/etc/ssh/sshd_config文件中的配置是否正确。

确保用户的家目录和权限设置正确。

检查Selinux状态是否为宽松模式。

Q2: 如何更改SFTP用户的根目录?

A2: 要更改SFTP用户的根目录,可以编辑/etc/ssh/sshd_config文件,找到ChrootDirectory配置项,并将其值更改为新的根目录路径,要将用户的根目录更改为/new/root/directory,请将ChrootDirectory配置项的值更改为ChrootDirectory /new/root/directory,然后重启sshd服务以使更改生效。

十一、小编有话说

搭建SFTP服务器是提高文件传输安全性的有效手段之一,在CentOS 7上搭建SFTP服务器相对简单,只需按照上述步骤进行操作即可,在实际应用中,我们还需要考虑安全性、性能优化以及与其他服务的集成等问题,希望本文能够帮助大家顺利搭建SFTP服务器,并在实际应用中发挥其价值。

0