chroot ssh 用户到主目录

chroot ssh 用户到主目录

一个 ssh 用户如何 chroot 到他们的主目录?

这是我在 sshd_config 文件中设置的内容:

ChrootDirectory %h

Subsystem       sftp    /usr/libexec/openssh/sftp-server

ssh版本是6.6.1

这是我尝试登录时遇到的错误:

Could not chdir to home directory /home/user: No such file or directory

/bin/bash: no such file or directory

答案1

如果您想将用户 chroot 到他们的目录,您需要有 shell 以及他们需要在目录中执行的其他内容。这就是你的错误所说的。 Chroot 正在将 root 更改为 /home/user,然后尝试在 /home/user/bin/bash 中查找 /bin/bash (用户选择的 shell),失败并报告错误。

答案2

第一条错误消息(“无法chdir...”)来自Chroot目录在你的sshd_config。从文档中:

Chroot目录

chroot(2)指定身份验证后的目录路径名。路径名的所有组成部分必须是 root 拥有的目录,任何其他用户或组都不可写入。 chroot 后,sshd(8)将工作目录更改为用户的主目录。

尝试 chroot 是当出现无法找到bash.这与没有完整的 chroot 环境设置有关(请参阅 的文档chroot(2))。

如果您希望用户的交互环境是chroot“d”(而不仅仅是“d sftp”),那么您需要做很多工作。根据您的最终目标,您可能只想简单地使用受限 shell(查看bash(1)vim(1)搜索“restricted”以找到有关如何设置的一些想法)。

我发现了一些其他类似问题的参考资料askubuntu.com等等archlinux.org(请务必滚动到第二个目录的底部,了解为什么该目录必须由 root 拥有的说明)。

相关内容