Debian SFTP如何实现远程访问
导读:Debian SFTP 远程访问配置指南 一 环境准备与安装 更新索引并安装 OpenSSH 服务器: sudo apt update sudo apt install openssh-server 确认服务已运行并设为开机自启:...
Debian SFTP 远程访问配置指南
一 环境准备与安装
- 更新索引并安装 OpenSSH 服务器:
- sudo apt update
- sudo apt install openssh-server
- 确认服务已运行并设为开机自启:
- sudo systemctl start ssh
- sudo systemctl enable ssh
- 说明:SFTP 基于 SSH,默认与 SSH 共用端口 22,无需额外开放 FTP 端口。
二 基本配置启用 SFTP
- 编辑 SSH 服务配置:
- sudo nano /etc/ssh/sshd_config
- 推荐启用内置 SFTP 子系统(更易于与 chroot 配合):
- 将原有的 “#Subsystem sftp /usr/lib/openssh/sftp-server” 注释或替换为:
- Subsystem sftp internal-sftp
- 将原有的 “#Subsystem sftp /usr/lib/openssh/sftp-server” 注释或替换为:
- 保存后重启 SSH 服务:
- sudo systemctl restart ssh
- 说明:SFTP 与 SSH 使用同一端口 22,无需额外端口放行。
三 限制用户仅使用 SFTP 并启用 Chroot 监狱
- 创建专用用户组(可选但推荐):
- sudo groupadd sftpusers
- 创建用户并加入组(示例用户名为 sftpuser):
- sudo adduser sftpuser
- sudo usermod -aG sftpusers sftpuser
- 配置仅 SFTP 访问(在 /etc/ssh/sshd_config 末尾添加):
- Match Group sftpusers
- ChrootDirectory %h
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- Match Group sftpusers
- 设置目录权限以满足 chroot 要求:
- 家目录属主必须为 root,权限 755:
- sudo chown root:root /home/sftpuser
- sudo chmod 755 /home/sftpuser
- 在家目录内创建可写子目录(如 uploads)并赋权给该用户:
- sudo mkdir -p /home/sftpuser/uploads
- sudo chown sftpuser:sftpusers /home/sftpuser/uploads
- sudo chmod 755 /home/sftpuser/uploads
- 家目录属主必须为 root,权限 755:
- 使配置生效:
- sudo systemctl restart ssh
- 说明:chroot 要求被限制目录及其上级目录属主为 root 且不可写,业务写入应放在子目录中。
四 防火墙与端口设置
- 如使用 UFW:
- 放行 SSH(即 SFTP)端口:sudo ufw allow 22/tcp
- 或按服务放行:sudo ufw allow SSH
- 如使用 nftables/iptables:放行 22/tcp
- 说明:SFTP 与 SSH 共用 22 端口,无需为 SFTP 单独放行额外端口。
五 客户端连接与测试
- 命令行连接:
- sftp sftpuser@your_server_ip
- 图形化客户端:
- 使用 FileZilla、WinSCP 等,协议选择 SFTP,主机填服务器 IP,端口 22,登录类型选密码或密钥。
- 故障排查:
- 查看认证与 SFTP 子系统日志:sudo tail -f /var/log/auth.log
- 常见原因:目录权限不符合 chroot 要求、SELinux/AppArmor 限制、密码错误或密钥未部署。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian SFTP如何实现远程访问
本文地址: https://pptw.com/jishu/758742.html
