在 Linux 上开启 SFTP 服务,通常是通过 OpenSSH 来实现的,因为 SFTP 是 SSH 的一部分。下面按常见发行版和步骤说明。
systemctl status sshd
或(部分系统)
systemctl status ssh
sudo apt update
sudo apt install openssh-server
sudo yum install -y openssh-server
# 或
sudo dnf install -y openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
(Ubuntu 有时是 ssh)
sudo systemctl start ssh
sudo systemctl enable ssh
SFTP 默认是 开启的,只要 SSH 正常即可使用。
sftp localhost
或从另一台机器:
sftp username@服务器IP
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
确认以下内容存在且未被注释:
Subsystem sftp /usr/lib/openssh/sftp-server
或(较新系统):
Subsystem sftp internal-sftp
修改后重启 SSH:
sudo systemctl restart sshd
适用于 只允许文件传输,不允许登录系统 的用户。
sudo useradd -m sftpuser
sudo passwd sftpuser
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
然后重启 SSH:
sudo systemctl restart sshd
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo ufw allow 22
sudo ufw reload
/bin/false 或没权限Linux 开启 SFTP 服务 = 安装并启动 OpenSSH,SFTP 默认已启用。
如果你愿意,可以告诉我:
我可以给你一份 最适合你场景的完整配置方案。