在 Ubuntu 上开启 SFTP(SSH File Transfer Protocol) 通常不需要额外安装服务,因为 SFTP 是 OpenSSH 的一部分。只要 SSH 服务正常运行,SFTP 就默认可用。
下面按常见场景给你完整说明。
sudo apt update
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh
看到 active (running) 即表示正常。
✅ 到此为止,SFTP 已经开启,默认端口 22
sftp localhost
sftp 用户名@服务器IP
示例:
sftp user@192.168.1.100
sudo nano /etc/ssh/sshd_config
确认或添加以下内容:
Subsystem sftp internal-sftp
例如限制用户 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
⚠️
ChrootDirectory必须由 root 拥有,且不能被普通用户写
sudo systemctl restart ssh
sudo ufw allow 22
sudo ufw reload
sftp user@ip
推荐使用:
协议选择 SFTP(不是 FTP)
检查:
不一样:
| 项目 | SFTP | FTP |
|---|---|---|
| 协议 | SSH | TCP |
| 加密 | ✅ | ❌ |
| 默认端口 | 22 | 21 |
如果你需要:
可以直接告诉我你的使用场景,我可以给你定制配置。