温馨提示×

ubuntu sftp可以匿名吗

小樊
45
2026-10-16 23:54:59
栏目: 智能运维

在 Ubuntu 上,标准的 SFTP(基于 SSH 的 FTP)默认是不支持匿名登录的,但可以通过一些配置实现“类似匿名”的访问。下面分情况说明:


一、SFTP 默认情况(OpenSSH)

Ubuntu 上的 SFTP 通常由 openssh-server 提供:

  • SFTP = SSH File Transfer Protocol
  • 必须有一个系统用户
  • 默认 不允许匿名用户

所以:

❌ 默认 SFTP 不能匿名登录


二、如何实现“匿名 SFTP”(可行方案)

✅ 方案 1:创建专用匿名用户(最常见)

创建一个普通用户(如 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

✅ 这不是“真正的匿名”,但是实际中最常用的方式


✅ 方案 2:匿名 + 空密码(不推荐,有风险)

在 sshd_config 中:

Match User anonymous
    PermitEmptyPasswords yes
    ForceCommand internal-sftp

并设置空密码:

sudo passwd -d anonymous

⚠️ 极不安全,公网环境禁止使用


❌ 方案 3:像 FTP 那样 true anonymous

SFTP 本身不支持:

  • 没有 anon_enable=YES 这种选项(那是 vsftpd 的)
  • SFTP 必须走 SSH 认证

如果你真的需要“真匿名 FTP”:

  • 用 vsftpd + FTP(不是 SFTP)
  • 或使用 WebDAV

三、总结

方式 是否支持
默认 SFTP 匿名 ❌
创建 anonymous 用户 ✅
空密码 SFTP ✅(不安全)
真·匿名(无用户) ❌

如果你愿意,我可以:

  • 给你一套 安全的只读匿名 SFTP 配置
  • 或帮你 用 vsftpd 搭真正匿名 FTP

你更偏向哪种?

0 踩