Jailkit不允许SSH连接

我试图在运行Debian 5的服务器上设置jailkit。我为他创build了一个新的ssh用户(bob)和一个chroot目录(/ var / www / bob)。 我用下面的命令给了chroot extshellplusnet和限制shell选项:

jk_init -c /etc/jailkit/jk_init.ini -j /var/www/bob/ extshellplusnet jk_init -c /etc/jailkit/jk_init.ini -j /var/www/bob/ limitedshell 

然后我监禁他:

 jk_jailuser -m -j /var/www/bob bob 

当我试图跳进ssh,它连接,我得到的横幅,然后断开连接。 我的auth.log如下所示:

 Aug 25 05:04:36 server sshd[29885]: Accepted password for bob from 123.45.6.7 port 50624 ssh2 Aug 25 05:04:36 server sshd[29885]: pam_unix(sshd:session): session opened for user bob by (uid=0) Aug 25 05:04:36 server jk_chrootsh[29942]: now entering jail /var/www/bob for user bob (1001) with arguments Aug 25 05:04:36 server sshd[29885]: pam_unix(sshd:session): session closed for user bob 

我的非监禁用户工作得很好,我似乎没有得到任何权限错误。 有任何想法吗?

首先通过replacesshd_config文件来将SSH日志转换为DEBUG3: LogLevel INFO LogLevel DEBUG3

你会看到更多的信息,为什么SSH确实closures了连接。

然后确保你所有的shell都需要在chrooted环境中运行:

  • 用户家在那里有正确的权限
  • 所有的shell都需要在chroot目录下启动(shell可执行文件和所有的库)
  • 所有组件如passwd,group,hosts,nsswitch.conf,resolv.conf,shadow都位于/ var / www / bob / etc
  • null伪设备是/ var / www / bob / dev目录。 你可以创build它input: mknod /var/www/bob/dev/null c 1 3
  • 那么如果它仍然不起作用,我build议你用strace命令来debugging你的chroot环境。

strace chroot /var/www/bob/ /bin/bash