我如何设置匿名 sftp 用户?
我生成了 ssh 密钥对,设置/usr/lib/sftp-server
为 shell/etc/password
并共享私钥 (id_rsa),然后用户可以通过此命令获得访问权限
sftp -oIdentityFile=id_rsa public_sftp@host
这是一个好主意吗?
答案1
你不能。
sftp
通过以下方式登录ssh
- 必须有一个您登录的帐户。
您可以分享帐户(创建多个密钥对,或者仅将私钥传递给需要访问权限的每个人),但没有相当于普通 FTP 的“匿名”用户且没有密码。
你可以使用FTPS
(使用 SSL 包装的普通 FTP)也可以做到这一点。
答案2
SFTP 没有与 FTP 相同的匿名访问方法,但可以启用无需身份验证的匿名访问。
SFTP 协议在 SSH2 传输层上运行,身份验证也使用 SSH2 协议进行。SSH Tectia Server 可以配置为允许指定用户(例如“匿名”)无需任何身份验证即可登录。还可以将登录限制在某个 IP 地址范围或服务器上的某个接口(有关详细信息,请参阅服务器管理手册)。
可以通过 chrooting sftp 会话并拒绝终端、命令和隧道访问来限制此用户的访问权限。用户下载和上传文件的能力取决于操作系统对文件和目录的权限。如果允许上传,建议将目录的写入权限放在单独的文件系统上,这样匿名用户就不可能通过填满系统或其他用户使用的文件系统来损害系统。