在 Ubuntu 上配置 SFTP 服务器(基于 OpenSSH)通常不需要额外安装软件,只需正确配置 SSH 即可。下面是从零开始的完整步骤。
大多数 Ubuntu 已默认安装:
sudo apt update
sudo apt install openssh-server
检查服务状态:
sudo systemctl status ssh
sudo adduser sftpuser
SFTP 目录必须 属于 root,且其他用户不可写:
sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
sudo mkdir /sftp/sftpuser/upload
sudo chown sftpuser:sftpuser /sftp/sftpuser/upload
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
如果是多个用户,可用
Match Group sftp
sudo systemctl restart ssh
从本地或远程:
sftp sftpuser@服务器IP
登录后:
cd upload
put test.txt
原因:
检查:
ls -ld /sftp/sftpuser
确认上传目录:
ls -ld /sftp/sftpuser/upload
必须是 sftpuser 可写
sudo usermod -s /usr/sbin/nologin sftpuser
sudo ufw allow ssh
如果你需要:
可以告诉我你的具体使用场景。