在 Ubuntu 上,标准的 SFTP(基于 SSH 的 FTP)默认是不支持匿名登录的,但可以通过一些配置实现“类似匿名”的访问。下面分情况说明:
Ubuntu 上的 SFTP 通常由 openssh-server 提供:
所以:
❌ 默认 SFTP 不能匿名登录
创建一个普通用户(如 anonymous 或 ftp),然后用密码或免密登录。
sudo adduser anonymous
限制该用户只能使用 SFTP(不能 SSH 登录):
编辑 /etc/ssh/sshd_config:
Match User anonymous
ChrootDirectory /srv/sftp
ForceCommand internal-sftp
PasswordAuthentication yes
创建目录:
sudo mkdir -p /srv/sftp
sudo chown root:root /srv/sftp
sudo chmod 755 /srv/sftp
重启 SSH:
sudo systemctl restart ssh
客户端连接:
sftp anonymous@your_server
✅ 这不是“真正的匿名”,但是实际中最常用的方式
在 sshd_config 中:
Match User anonymous
PermitEmptyPasswords yes
ForceCommand internal-sftp
并设置空密码:
sudo passwd -d anonymous
⚠️ 极不安全,公网环境禁止使用
SFTP 本身不支持:
anon_enable=YES 这种选项(那是 vsftpd 的)如果你真的需要“真匿名 FTP”:
| 方式 | 是否支持 |
|---|---|
| 默认 SFTP 匿名 | ❌ |
| 创建 anonymous 用户 | ✅ |
| 空密码 SFTP | ✅(不安全) |
| 真·匿名(无用户) | ❌ |
如果你愿意,我可以:
你更偏向哪种?