在Debian系统上配置SFTP以使用被动模式,通常需要调整SSH服务器的配置。以下是详细的步骤:
编辑SSH配置文件:
打开SSH配置文件 /etc/ssh/sshd_config。
sudo nano /etc/ssh/sshd_config
启用被动模式:
在 sshd_config 文件中,找到或添加以下行:
Subsystem sftp internal-sftp
这行代码确保SFTP子系统使用内部SFTP服务器。
配置被动模式端口范围: 如果你需要指定被动模式的端口范围,可以添加以下行:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Passenv LANG LC_*
然后,创建一个用户组 sftpusers 并将需要使用SFTP的用户添加到该组:
sudo groupadd sftpusers
sudo usermod -aG sftpusers your_username
替换 your_username 为实际的用户名。
配置防火墙:
确保防火墙允许SFTP流量。如果你使用的是 ufw,可以添加以下规则:
sudo ufw allow 22/tcp
sudo ufw allow 10022:10040/tcp # 这是被动模式的默认端口范围
如果你使用的是 iptables,可以添加以下规则:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 10022:10040 -j ACCEPT
重启SSH服务:
保存并关闭 sshd_config 文件后,重启SSH服务以应用更改:
sudo systemctl restart sshd
验证配置: 确保SFTP服务正常运行,并且被动模式端口范围已正确配置。你可以使用以下命令检查SSH服务的状态:
sudo systemctl status sshd
通过以上步骤,你应该能够在Debian系统上成功配置SFTP以使用被动模式。