Debian下SFTP如何搭建
导读:Debian下搭建SFTP服务器的详细步骤 1. 更新系统及安装OpenSSH服务器 首先,确保系统软件包为最新版本,避免因旧版本漏洞导致安全问题: sudo apt update && sudo apt upgrade -...
Debian下搭建SFTP服务器的详细步骤
1. 更新系统及安装OpenSSH服务器
首先,确保系统软件包为最新版本,避免因旧版本漏洞导致安全问题:
sudo apt update &
&
sudo apt upgrade -y
安装OpenSSH服务器(Debian默认仓库已包含该组件):
sudo apt install openssh-server -y
2. 配置SSH服务以支持SFTP
编辑SSH主配置文件(需root权限):
sudo nano /etc/ssh/sshd_config
关键修改项:
- 启用内置SFTP子系统:找到
# Subsystem sftp /usr/lib/openssh/sftp-server,取消注释并将路径改为internal-sftp(更轻量且无需额外安装):Subsystem sftp internal-sftp - 限制SFTP用户权限:在文件末尾添加以下内容,创建
sftpusers组并将该组成员限制在自家目录(%h代表用户主目录),禁止SSH登录和其他转发功能:Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
3. 创建SFTP专用用户组及用户
- 创建sftpusers组:
sudo groupadd sftpusers - 创建SFTP用户并加入组:以
ftpuser为例,创建用户时设置密码(交互式输入):sudo adduser ftpuser sudo usermod -aG sftpusers ftpuser # 将用户添加到sftpusers组
4. 设置用户主目录权限
SFTP要求用户主目录的所有者为用户自身(而非组或root),且权限为755(确保用户可读写自己的文件,但无法修改目录结构):
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
注意:若需让用户上传文件,需在主目录下创建专用子目录(如upload),并设置正确权限:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:sftpusers /home/ftpuser/upload # 所属组为sftpusers,允许组内用户写入
sudo chmod 775 /home/ftpuser/upload
5. 重启SSH服务应用配置
修改配置后,必须重启SSH服务使更改生效:
sudo systemctl restart sshd
验证服务状态(确保无报错):
sudo systemctl status sshd
6. 测试SFTP连接
使用SFTP客户端(如Linux终端或FileZilla)连接服务器,输入用户名和密码:
sftp ftpuser@your_server_ip
- 若成功登录,会显示用户主目录路径(如
/home/ftpuser); - 测试上传文件(将本地
test.txt上传至服务器):put test.txt - 测试下载文件(从服务器下载
upload/test.txt至本地):get upload/test.txt
常见问题排查
- 连接失败:检查SSH服务是否运行(
systemctl status sshd),或防火墙是否放行22端口(sudo ufw allow 22); - 权限错误:确保用户主目录所有者为用户自身(
chown命令),且权限为755; - 无法上传文件:检查上传目录是否存在且权限为
775(chown ftpuser:sftpusers)。
通过以上步骤,即可在Debian系统上搭建一个安全、受限的SFTP服务器,满足文件传输需求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下SFTP如何搭建
本文地址: https://pptw.com/jishu/734994.html
