sftp://domainnaame.tld 显示整个文件系统

sftp://domainnaame.tld 显示整个文件系统

我有一个在自定义端口上使用 SSH 的家庭 Web 服务器。我发现如果我访问sftp://domainname.tld:port我的整个文件系统,它都是可见的,任何人都可以下载任何文件。我想将其 chroot 到我的public_html目录中,但重新启动服务后,我的添加似乎没有任何区别。我在 sshd_config 中添加的内容如下:

Subsystem       sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

ChrootDirectory /path/public_html/
ForceCommand internal-sftp
AllowTcpForwarding no

如果能提供一个可以让我阅读 SSH 配置文档的链接,我将非常感激。

编辑:我无意中遗漏了一条重要信息(我认为)。我说的是当有人sftp://domainname.tld:port通过 Web 浏览器访问时,而不是通过 SFTP 程序访问时。我在 Linux Mint 上的 Firefox 中遇到了这种行为。

答案1

添加类似的内容:

Match user restricted_user
    ChrootDirectory /home/chrooted
    ForceCommand internal-sftp

/etc/ssh/sshd_config

restricted_user不是继续使用 ssh shell :

$ ssh -o Port=some_port [email protected]
[email protected]'s password:
This service allows sftp connections only.
Connection to domainname.tld closed.

看来 ssh 对目录的访问权限非常挑剔。如果连接失败并出现错误Write failed: Connection reset by peer,通常可以查看/var/log/auth/var/log/secure了解发生了什么。

https://wiki.archlinux.org/index.php/SFTP-chroot更多细节。

答案2

应该如此。SFTP 通过 SSH 运行,因此您应该能够看到您以用户身份登录且具有读取权限的任何文件。即使您进行了 chroot SFTP,用户也可以使用 SSH 登录并读取文件。

任何人都可以下载任何文件

不正确;任何人使用系统上的用户帐户可以下载任何文件其用户有权限阅读。

SFTP 不像 FTP 那样具有匿名访问权限,并且所采取的任何操作都可以始终与系统上注册的特定用户相关联。如果您想保护系统安全,请使用强密码、限制可以通过 SSH 连接的 IP 范围、注意失败的登录尝试等。

相关内容