更改 ssh 服务器的根文件夹

更改 ssh 服务器的根文件夹

有一些类似的问题,但不尽相同。我不想更改默认文件夹。所以我想为 ssh 连接设置根文件夹。我的意思是客户端可以访问的唯一文件夹是我设置的。我想设置一个路径,只有我的客户端可以访问它,而不能使用cd ..

他们无法进入上级文件夹,因为他们没有访问权限。

编辑:我最想做的事情是拥有一个本地服务器,并安装一些其他设备来写入,但不是所有文件都可以访问。如果有比 ssh 更好的方法,请原谅我的问题。

谢谢

答案1

您需要ChrootDirectory在 sshd 配置中为所述用户、某个组或所有用户进行设置,但这太糟糕了。

你创建一个新文件,然后/etc/ssh/sshd_config.d/chroot_some_users.conf输入以下内容:

Match User myuser
     ChrootDirectory %h

如果您希望多个用户都使用此功能,请使用Match Group groupname并将所有需要的用户添加到该组中。

Include /etc/ssh/sshd_config.d/*.conf在现代 Linux 发行版中, 中有/etc/ssh/sshd_config。在较旧的发行版中,您可能需要自己添加此行;只需将其附加到末尾即可。完成所有操作后,使用 进行检查sshd -t,如果它没有报告任何错误,则可以安全地使用 重新加载配置systemctl reload sshd.service

用户myuser最终将通过 SSH 将其主目录视为文件系统根目录。请注意,他们将无法通过 SSH 登录,因为此 chroot 将阻止他们查看 shell 二进制文件和所需的库,除非您将其放在主目录中。但他们仍将能够使用 SFTP 传输文件和转发 TCP 端口。

阅读man sshd_config(完整!)并man sshd了解许多重要且有用的细节。

相关内容