chroot ssh 用户

chroot ssh 用户

我使用的是 CentOS 7。

我需要向 ssh 用户授予 shell 访问权限,但将他们限制在监狱中。我已经使用jailkit来设置监狱。我已经复制了用户在监狱环境中所需的所有必要的库和二进制文件。监狱目录结构如下所示:

[root@server jail]# pwd

/var/jail

[root@server jail]# ls -l

total 8

drwxr-xr-x. 2 root root   26 May 28 16:17 bin

drwxr-xr-x. 2 root root   41 May 28 16:18 dev

drwxr-xr-x. 3 root root 4096 May 28 16:22 etc

drwxr-xr-x. 3 root root   19 May 28 16:14 home

drwxr-xr-x. 2 root root 4096 May 28 16:09 lib

lrwxrwxrwx. 1 root root    9 May 28 16:14 lib64 -> usr/lib64

drwxr-xr-x. 7 root root   65 May 28 16:18 usr

我已使用“jk_jailuser”将用户主目录移动到/var/jail/home。

但是,当用户登录时,他可以 cd 进入监狱环境中的其他目录。我希望用户被限制在他/她的主目录中,并且不能 cd 到任何其他目录。

我尝试在 sshd_config 中使用 Match group 指令,如下所示:

      Match group sshusers

          ChrootDirectory /var/jail/

          X11Forwarding no

          AllowTcpForwarding no

但这是我在设置后尝试通过 ssh 登录时收到的错误:

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

/usr/sbin/jk_chrootsh: No such file or directory

我无法登录

我真的被困在这里了。我不知道如何解决这个问题。有人可以帮忙吗?如何在监狱环境中将 SSH 用户限制在其主目录中?

答案1

用户的主目录应该相对于 chroot 路径。如果要用/var/jail/home/user作主目录,则必须将用户的主目录设置为/home/user.

相关内容