SFTP服务器配置指南
导读: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
