我在 Fedora 10 上安装了vsftpd
实用程序来限制用户只能访问其 (chroot) 主目录。当我使用ftp
提示连接时它工作正常。但是,当我使用 进行连接时它不起作用sftp
。
为了实现相同的功能需要进行哪些更改sftp
?
答案1
除了 Stephane 的回答之外,我还想指出还有 FTPS。 FTPS 是基于 SSL 安全连接的经典 FTP 协议。如果你的意思是这个,你当然必须调整你的问题,但这将是一个完全不同的问题。
FTPS 有两种变体,一种是控制通道受到保护(凭证等),另一种是数据通道也受到保护。然而,正如 Stephane 已经指出的那样,协议是不同的,包括功能和命令。
关于你的评论。您可以配置/etc/ssh/sshd_config
为根据特定条件仅允许特定目录结构。下面的示例将组的所有成员限制sftponly
在该/home
文件夹中。根据您的需求进行调整:
Match group sftponly
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication no
正如您所看到的,它还设置了其他选项。严格来说,对于您要求的功能,您只需要这个:
Match group sftponly
ChrootDirectory /home
ForceCommand internal-sftp
但当然,这些选项会阻止用户使用其他 SSH 设施。
请咨询man sshd_config
更多详细信息,特别是有关该Match
指令的信息。您还可以匹配每个用户、每个主机和每个(远程)地址。
答案2
vsftpd
是一个实现FTP协议的FTP服务器。 FTP 提供了一些加密扩展,但它们与 SFTP 完全不同,SFTP 是 SSH 的子系统。
如果要使用sftp
,则需要配置ssh
服务器并启用sftp
子系统(sshd_config
详细信息请参阅手册页)。还可以配置sftp
edchroot
用户区域。