在 Debian 上,SFTP 功能通常默认就是开启的,因为它由 OpenSSH 服务器提供。下面一步步说明如何确认和开启。
sudo apt update
sudo apt install openssh-server
systemctl status ssh
如果没有运行:
sudo systemctl start ssh
sudo systemctl enable ssh
SFTP 使用的是 SSH 的子系统,Debian 默认配置中已经包含:
cat /etc/ssh/sshd_config | grep sftp
通常你会看到:
Subsystem sftp /usr/lib/openssh/sftp-server
只要有这一行,SFTP 就是可用的。
在另一台机器上执行:
sftp 用户名@服务器IP
如果能连接并进入 sftp> 提示符,说明已开启。
如果你想让某些用户只能用 SFTP,不能登录 shell:
/etc/ssh/sshd_config,添加:Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
sudo groupadd sftpusers
sudo useradd -m -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
sudo systemctl restart ssh
如果开了防火墙,确保 22 端口开放:
sudo ufw allow 22
ssh 服务是否运行如果你愿意,可以告诉我:
我可以给你更精确的配置示例。