SSH 连接的 Chroot 不起作用

SSH 连接的 Chroot 不起作用

我已经发现我怎样才能 chroot ssh 连接?以及很多不同的博客文章和类似的文章(http://undeadly.org/cgi?action=article&sid=20080220110039https://unix.stackexchange.com/q/14398/57364等)。我正在使用文章中描述的内部 sftp 子系统。

Subsystem     sftp   internal-sftp

Match Group www-data
  ChrootDirectory %h
  AllowTcpForwarding no

我可以连接服务器并进行身份验证,但 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

怎么了?

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

/bin/bash: No such file or directory

我不明白为什么这是个问题。
我以为“新”版本的 OpenSSH 已经不再需要复制部分了?

答案1

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

需要向 jail 中填充必要的文件,以便允许用户执行 shell。这意味着创建一个/bin相对于 jail 根目录的目录,并在其中填充一份副本/bin/bash(以及其他内容)。

监狱工具实用程序能够自动构建 chroot jail,并且正在积极维护。您可能想在那里查看一下。

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

相关内容