openssh chroot 终止 ssh 连接

openssh chroot 终止 ssh 连接

我有一台 Debian Wheezy 服务器,我想在某些用户通过 openssh 服务器登录时对其进行 chroot。但是我收到一个奇怪的错误:出于测试目的,我简单地添加了

ChrootDirectory /data/

到我的 sshd_config 文件(并重新启动服务器)

当我尝试通过 putty 登录时,窗口直接关闭,没有错误消息。当我尝试从服务器使用 openssh-client 时,出现此错误:

ssh testuser@localhost
testuser@localhost's password:
Last login: ....
/bin/bash: No such file or directory
Connection to localhost closed

/data/ 目录归 root:root 所有,具有 755 权限。如果我尝试添加具有相同权限的 /data/testuser 目录,则会出现相同的错误。

auth.log 中没有任何一次尝试的痕迹。

如果我从 sshd_config 中删除 chroot 行并重新启动服务器,我可以通过 putty 和 openssh-client 正常登录。

为什么我会收到此错误?我不明白。

答案1

这是正常的,也是 chroot 的预期结果,因为您已经对其进行了配置。您真正需要做的是花一些时间了解您正在使用的工具。具体来说,chroot 是什么以及它的工作原理与您的想法显然不同。维基百科的这段摘录解释了您看到的问题,并为您提供了进一步研究的见解。

Unix 操作系统上的 chroot 操作会更改当前正在运行的进程及其子进程的显性根目录。在这种修改后的环境中运行的程序无法命名(因此通常无法访问)指定目录树之外的文件。

相关内容