首页主机资讯SFTP服务器配置指南

SFTP服务器配置指南

时间2025-10-29 23:56:05发布访客分类主机资讯浏览387
导读:SFTP服务器配置指南(Linux系统) 一、SFTP概述 SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输协议,具备以下核心优势: 数据加密:所有传输数据(包括文件内容、认证信息)均通过SS...

SFTP服务器配置指南(Linux系统)

一、SFTP概述

SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输协议,具备以下核心优势:

  • 数据加密:所有传输数据(包括文件内容、认证信息)均通过SSH加密通道传输,防止窃听;
  • 认证安全:支持密码认证(默认)和密钥认证(更安全),避免明文密码泄露;
  • 集成性:无需额外安装服务,是OpenSSH服务器的内置组件,降低系统复杂度。

二、前置准备

1. 系统要求

  • 支持Linux发行版:Ubuntu/Debian/CentOS/RHEL/Fedora等;
  • 确保系统已联网,能访问官方软件源。

三、安装OpenSSH服务器

SFTP依赖OpenSSH服务,大多数Linux系统默认安装,未安装时可通过以下命令完成:

  • Ubuntu/Debian
    sudo apt update &
        &
         sudo apt install openssh-server -y
    
  • CentOS/RHEL
    sudo yum install openssh-server -y
    
  • Fedora
    sudo dnf install openssh-server -y
    

安装完成后,启动SSH服务并设置开机自启:

sudo systemctl start sshd &
    &
     sudo systemctl enable sshd

验证服务状态:

sudo systemctl status sshd  # 应显示“active (running)”

四、配置SFTP服务

1. 修改SSH配置文件

编辑/etc/ssh/sshd_config(需root权限),按以下要求调整配置:

sudo nano /etc/ssh/sshd_config
  • 启用内置SFTP子系统(替换原有Subsystem sftp行):
    Subsystem sftp internal-sftp  # 使用OpenSSH内置的SFTP模块,性能更优
    
  • 限制用户组权限(在文件末尾添加):
    Match Group sftpusers  # 匹配“sftpusers”组的用户
        ChrootDirectory %h   # 将用户限制在其主目录(%h代表用户家目录)
        ForceCommand internal-sftp  # 强制使用SFTP,禁止SSH登录
        AllowTcpForwarding no  # 禁用TCP转发(防止端口转发攻击)
        X11Forwarding no     # 禁用X11转发(避免图形界面漏洞)
    

:若需允许普通SSH登录(非SFTP用户),可将Match Group改为Match User sftpuser(针对单个用户)。

2. 创建SFTP用户及组

  • 创建专用用户组(用于集中管理SFTP用户):
    sudo groupadd sftpusers
    
  • 创建SFTP用户(以sftpuser为例):
    sudo useradd -m -G sftpusers -s /bin/false sftpuser
    
    参数说明:
    • -m:自动创建用户家目录(如/home/sftpuser);
    • -G sftpusers:将用户添加到sftpusers组;
    • -s /bin/false:禁止用户通过SSH登录(仅允许SFTP)。
  • 设置用户密码
    sudo passwd sftpuser  # 输入两次密码(建议使用强密码)
    

3. 配置用户目录权限

SFTP的ChrootDirectory要求用户主目录必须由root拥有,且权限为755(防止用户修改目录结构):

sudo chown root:root /home/sftpuser  # 主目录所有者为root
sudo chmod 755 /home/sftpuser        # 主目录权限为755
  • 创建上传目录(用户可在该目录写入文件):
    sudo mkdir -p /home/sftpuser/uploads  # 创建上传子目录
    sudo chown sftpuser:sftpusers /home/sftpuser/uploads  # 所有权给用户及组
    sudo chmod 755 /home/sftpuser/uploads  # 权限设为755(允许用户读写)
    

:若需多个上传目录,可重复上述步骤(如/home/sftpuser/downloads)。

五、重启SSH服务应用配置

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

sudo systemctl restart sshd  # Debian/Ubuntu/CentOS/RHEL

或(旧版本系统):

sudo service sshd restart

六、测试SFTP连接

1. 命令行测试

使用SFTP客户端连接服务器(以sftpuser为例):

sftp sftpuser@your_server_ip

输入密码后,若成功登录,将显示SFTP提示符(sftp> ),可执行以下基本命令:

ls          # 列出远程目录内容
cd uploads  # 切换至上传目录
put local_file.txt  # 上传本地文件至远程
get remote_file.txt # 下载远程文件至本地
mkdir test  # 创建远程目录
exit        # 退出SFTP会话

2. 图形化工具测试

推荐使用以下工具(需提前安装):

  • FileZilla(跨平台):打开后选择“文件→站点管理器”,输入服务器IP、用户名、密码(端口默认22),点击“连接”;
  • WinSCP(Windows专用):输入服务器信息后,选择“SFTP”协议,点击“登录”。

七、安全注意事项

1. 禁用root登录

编辑/etc/ssh/sshd_config,设置:

PermitRootLogin no  # 禁止root用户直接SSH登录

重启SSH服务:

sudo systemctl restart sshd

2. 使用密钥认证(更安全)

  • 生成密钥对(在本地机器执行):
    ssh-keygen -t rsa -b 4096  # 生成RSA密钥(默认保存在~/.ssh/id_rsa)
    
  • 上传公钥至服务器
    ssh-copy-id sftpuser@your_server_ip  # 自动将公钥复制到服务器的~/.ssh/authorized_keys
    
  • 修改SSH配置(禁用密码认证):
    PasswordAuthentication no  # 在/etc/ssh/sshd_config中设置
    

重启SSH服务后,仅能通过密钥登录。

3. 防火墙配置

确保防火墙允许SSH(默认端口22)流量:

  • Ubuntu(ufw)
    sudo ufw allow 22/tcp
    sudo ufw enable
    
  • CentOS(firewalld)
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

4. 定期更新系统

保持系统和软件包最新,修复安全漏洞:

sudo apt update &
    &
     sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                      # CentOS/RHEL

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SFTP服务器配置指南
本文地址: https://pptw.com/jishu/738346.html
如何用SFTP进行文件加密传输 ifconfig命令中的metric参数如何设置

游客 回复需填写必要信息