在 Ubuntu 上配置 SFTP(基于 SSH 的文件传输)通常有以下几种常见方式。下面从最常用、最安全的方式讲起。
Ubuntu 默认已支持 SFTP(通过 OpenSSH)。
sudo apt update
sudo apt install openssh-server
sudo adduser sftpuser
sftp sftpuser@服务器IP
✅ 默认即可使用(家目录可读写)
sudo nano /etc/ssh/sshd_config
确保有以下内容(或修改):
Subsystem sftp internal-sftp
在文件末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
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
✅ 用户只能 SFTP,不能 SSH 登录
sudo groupadd sftpusers
Match Group sftpusers
ChrootDirectory /sftp
ForceCommand internal-sftp
AllowTcpForwarding no
sudo mkdir /sftp
sudo chown root:root /sftp
sudo chmod 755 /sftp
sudo mkdir /sftp/user1
sudo chown user1:sftpusers /sftp/user1
ssh-keygen
ssh-copy-id sftpuser@服务器IP
PasswordAuthentication no
sudo ufw allow 22
如果你需要:
可以告诉我你的使用场景,我可以给你更精确的配置。