如何在Debian里配置SFTP
导读:如何在Debian中配置SFTP SFTP(SSH文件传输协议)是基于SSH的安全文件传输工具,Debian系统可通过配置OpenSSH服务器快速实现。以下是详细步骤: 1. 安装OpenSSH服务器 Debian系统默认包含OpenSSH...
如何在Debian中配置SFTP
SFTP(SSH文件传输协议)是基于SSH的安全文件传输工具,Debian系统可通过配置OpenSSH服务器快速实现。以下是详细步骤:
1. 安装OpenSSH服务器
Debian系统默认包含OpenSSH服务器,若未安装,可通过以下命令安装:
sudo apt update
sudo apt install openssh-server
2. 配置SSH服务器以支持SFTP
编辑SSH主配置文件/etc/ssh/sshd_config,修改或添加以下内容:
sudo nano /etc/ssh/sshd_config
-
启用内置SFTP子系统:找到
# Subsystem sftp /usr/lib/openssh/sftp-server行,取消注释并替换为:Subsystem sftp internal-sftp此配置将使用OpenSSH内置的SFTP服务,无需额外安装
sftp-server包。 -
限制用户访问(可选但推荐):在文件末尾添加以下内容,限制
sftpusers组的用户仅能通过SFTP访问,且无法使用SSH shell:Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no其中:
Match Group sftpusers:匹配sftpusers组的用户;ChrootDirectory %h:将用户根目录限制为其主目录(%h代表用户主目录);ForceCommand internal-sftp:强制用户只能使用SFTP命令;AllowTcpForwarding no和X11Forwarding no:禁用端口转发和X11转发,增强安全性。
3. 创建SFTP用户组及用户
- 创建专用用户组(可选但便于管理):
sudo groupadd sftpusers - 添加用户并加入组:
sudo adduser username # 创建用户(按提示设置密码) sudo usermod -aG sftpusers username # 将用户加入sftpusers组 - 设置用户密码(若未在
adduser时设置):sudo passwd username
4. 配置用户主目录权限
SFTP要求用户主目录的权限必须正确,否则会导致连接失败:
sudo chown root:root /home/username # 主目录所有者必须为root
sudo chmod 755 /home/username # 主目录权限为755(rwxr-xr-x)
若需让用户上传文件,可在主目录下创建子目录(如uploads)并设置权限:
sudo mkdir -p /home/username/uploads
sudo chown username:sftpusers /home/username/uploads # 子目录所有者为用户,组为sftpusers
sudo chmod 775 /home/username/uploads # 子目录权限为775(rwxrwxr-x)
5. 重启SSH服务使配置生效
修改配置文件后,需重启SSH服务:
sudo systemctl restart sshd
6. 验证SFTP连接
使用SFTP客户端从本地或其他机器连接服务器,验证配置是否正确:
sftp username@your_server_ip
连接成功后,应显示SFTP提示符(如sftp>
),可通过ls、put、get等命令测试文件传输功能。
注意事项
- 若需调试SFTP连接问题,可查看SSH日志文件
/var/log/auth.log,获取详细错误信息; - 确保防火墙允许SSH端口(默认22)的流量通过;
- 避免将
ChrootDirectory设置为用户可写的目录,否则可能导致安全漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian里配置SFTP
本文地址: https://pptw.com/jishu/735003.html
