温馨提示×

如何快速配置centos sftp

小樊
47
2025-10-09 01:52:50
栏目: 智能运维

CentOS快速配置SFTP步骤

SFTP(SSH File Transfer Protocol)是基于SSH的安全文件传输协议,配置SFTP的核心是通过OpenSSH服务器实现,以下是快速配置流程

1. 安装OpenSSH服务器

确保系统已安装OpenSSH服务器(默认可能已安装),若未安装,执行以下命令:

sudo yum install openssh-server -y

2. 启动并启用SSH服务

安装完成后,启动SSH服务并设置为开机自启,保证服务持续运行:

sudo systemctl start sshd
sudo systemctl enable sshd

3. 配置SFTP子系统与访问规则

编辑SSH主配置文件/etc/ssh/sshd_config,修改以下关键参数:

  • 启用内置SFTP子系统(默认路径,无需修改):
    Subsystem sftp internal-sftp
    
  • 限制用户组仅能使用SFTP(避免普通SSH登录):
    Match Group sftpusers
        ChrootDirectory %h       # 将用户根目录限制为其主目录
        ForceCommand internal-sftp # 强制使用SFTP,禁用SSH shell
        AllowTcpForwarding no    # 禁止TCP转发
        X11Forwarding no         # 禁止X11转发
    

    注:Match Group sftpusers表示仅sftpusers组的用户受此规则限制。

4. 创建SFTP专用用户组与用户

  • 创建用户组(用于管理SFTP用户):
    sudo groupadd sftpusers
    
  • 创建用户并加入组(以ftpuser为例):
    sudo useradd -m -G sftpusers ftpuser  # `-m`创建家目录,`-G`加入sftpusers组
    sudo passwd ftpuser                   # 设置用户密码
    
  • 禁止用户使用SSH登录(增强安全性):
    sudo usermod -s /sbin/nologin ftpuser
    

5. 设置Chroot目录权限

SFTP用户的根目录需设为不可写(防止用户修改自身根目录结构),子目录设为可写(用于存放文件):

  • 设置家目录权限%h代表用户家目录,如/home/ftpuser):
    sudo chown root:root /home/ftpuser
    sudo chmod 755 /home/ftpuser
    
  • 创建并设置子目录(如upload目录,用于文件上传):
    sudo mkdir -p /home/ftpuser/upload
    sudo chown ftpuser:sftpusers /home/ftpuser/upload  # 子目录所有者为用户,组为sftpusers
    sudo chmod 755 /home/ftpuser/upload
    

6. 重启SSH服务应用配置

修改配置文件后,重启SSH服务使更改生效:

sudo systemctl restart sshd

7. 测试SFTP连接

使用SFTP客户端(如命令行、WinSCP、FileZilla)连接服务器,验证配置是否成功:

sftp ftpuser@your_server_ip

输入密码后,若能进入SFTP命令行界面(显示sftp>),则表示配置成功。可通过lsputget等命令测试文件操作。

额外安全建议

  • 防火墙配置:允许SSH(默认端口22)流量通过,若使用firewalld,执行:
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    
  • SELinux调整:若启用了SELinux,需允许SFTP访问用户目录,执行:
    sudo setsebool -P ssh_chroot_rw_homedirs on
    

通过以上步骤,即可在CentOS上快速搭建一个安全的SFTP服务器,满足基本的文件传输需求。

0