Назад | Перейти на главную страницу

Chroot с SSH-соединениями не работает

я нашел Как я могу использовать 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

Я могу подключиться и пройти аутентификацию с сервером, но сеанс 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 копирование уже прошло?

Такое ощущение, что вы пытаетесь превратить интерактивную оболочку в chroot тюрьма. Подсистема SFTP не имеет к этому никакого отношения, потому что вы не используете SFTP.

Вы делать необходимо заполнить тюрьму необходимыми файлами, чтобы пользователь мог запустить оболочку. Это означает создание /bin каталог относительно корня тюрьмы и заполняя его копией /bin/bash (среди прочего).

В Джейлкит Утилита способна автоматически создавать chroot-тюрьмы и активно поддерживается. Вы можете посмотреть туда.

Если вам нравится делать что-то вручную, обратите внимание на следующее (особенно первое, поскольку вы используете Debian):