带有 SSH 连接的 Chroot 不起作用

CSc*_*ulz 1 ssh chroot debian-wheezy

我发现如何 chroot ssh 连接?还有很多不同的博客文章和类似的文章(http://undeadly.org/cgi?action=article&sid=20080220110039、https://unix.stackexchange.com/q/14398/57364)。我正在使用内部 sftp 子系统,如文章中所述。

Subsystem     sftp   internal-sftp

Match Group www-data
  ChrootDirectory %h
  AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

我可以连接服务器并进行身份验证,但 SSH 会话立即关闭。

这是 auth.log 的一部分:

Feb 18 23:36:21 w sshd[358]: Accepted publickey for network from xxx port 50280 ssh2
Feb 18 23:36:21 w sshd[358]: debug1: monitor_read_log: child log fd closed
Feb 18 23:36:21 w sshd[358]: debug1: monitor_child_preauth: network has been authenticated by privileged process
Feb 18 23:36:21 w sshd[358]: debug1: PAM: establishing credentials
Feb 18 23:36:21 w sshd[358]: pam_unix(sshd:session): session opened for user network by (uid=0)
Feb 18 23:36:21 w sshd[358]: User child is on pid 363
Feb 18 23:36:21 w sshd[363]: debug1: SELinux support disabled
Feb 18 23:36:21 w sshd[363]: debug1: PAM: establishing credentials
Feb 18 23:36:21 w sshd[358]: debug1: session_new: session 0
Feb 18 23:36:21 w sshd[358]: debug1: SELinux support disabled
Feb 18 23:36:21 w sshd[358]: debug1: session_by_tty: session 0 tty /dev/pts/1
Feb 18 23:36:21 w sshd[358]: debug1: session_pty_cleanup: session 0 release /dev/pts/1
Feb 18 23:36:21 w sshd[358]: debug1: PAM: cleanup
Feb 18 23:36:21 w sshd[358]: debug1: PAM: closing session
Feb 18 23:36:21 w sshd[358]: pam_unix(sshd:session): session closed for user network
Feb 18 23:36:21 w sshd[358]: debug1: PAM: deleting credentials
Run Code Online (Sandbox Code Playgroud)

怎么了?

编辑:
我在客户端收到以下消息:

/bin/bash: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这是一个问题。
我认为使用 OpenSSH 的“新”版本,复制部分已经过去了?

Eva*_*son 5

感觉就像你正试图将交互式 shell 关进监狱chroot。SFTP 子系统与此无关,因为您没有使用 SFTP。

确实需要使用必要的文件填充监狱,以允许用户执行 shell。这意味着创建一个相对于监狱根目录的目录,并用(以及其他内容)/bin的副本填充它。/bin/bash

Jailkit实用程序能够自动构建 chroot Jail,并且正在积极维护你可能想去那里看看。

如果您喜欢手动执行操作,请查看以下内容(尤其是第一个,因为您使用的是 Debian):