有一些类似的问题,但不尽相同。我不想更改默认文件夹。所以我想为 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
了解许多重要且有用的细节。