我发现如何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
我可以连接服务器并进行身份validation,但SSH会话立即closures。
这是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的“新”版本复制部分已经过去了?
感觉就像你正在试图将一个交互式shell放到一个chroot
监狱里。 SFTP子系统与此无关,因为你不是SFTP。
你需要用必要的文件填充监狱,以允许用户执行一个shell。 这意味着创build一个相对于jail根目录的/bin
目录,并用/bin/bash
(等等)的副本填充它。
Jailkit实用程序能够自动build立chroot监狱,并正在积极维护。 你可能想看看那里。
如果你正在做的事情手动看看下面(特别是第一,因为你使用的是Debian):