SSH ChrootDirectory в Mac OS X Lion (не серверная версия)

Я пытаюсь настроить удаленную учетную запись пользователя на моем MacBook Pro, привязанную к /chroot/tmux, Я выполнил шаги, описанные здесь ( http://thefragens.com/blog/2011/12/chrootd-sftp-on-mac-os-x-server/), но когда я пытаюсь войти с помощью (на моем локальная сеть):

ssh tmux@10.0.1.140

... Я получаю немедленное закрытие соединения:

❯ ssh tmux@10.0.1.140                                                                                                        
Password:
Connection to 10.0.1.140 closed by remote host.
Connection to 10.0.1.140 closed.

Удаление этой строки в /etc/sshd_config позволяет войти в систему нормально, но мой tmux пользователь больше не chroot:

Match User tmux
  # ...
  ChrootDirectory /chroot/tmux # removing this allows me to login

Что я должен сделать, чтобы заставить это работать?


Это то, что я получаю после запроса пароля при попытке войти с клиента с ssh -vv tmux@10.0.1.140:

debug2: input_userauth_info_req 
debug2: input_userauth_info_req: num_prompts 0 
debug1: Authentication succeeded (keyboard-interactive). 
Authenticated to 10.0.1.140 ([10.0.1.140]:22). 
debug1: channel 0: new [client-session] 
debug2: channel 0: send open 
debug1: Requesting no-more-sessions@openssh.com 
debug1: Entering interactive session. 
debug1: channel 0: free: client-session, nchannels 1 
Connection to 10.0.1.140 closed by remote host.
Connection to 10.0.1.140 closed.
Transferred: sent 1872, received 1880 bytes, in 0.0 seconds
Bytes per second: sent 100689.1, received 101119.4
debug1: Exit status -1

Обнадеживающе, Консоль Mac сообщает об этом:

6/15/12 9:57:42.679 AM sshd: fatal: bad ownership or modes for chroot directory "/chroot/tmux"

Мои текущие права доступа к каталогу:

~ ❯ ls -al /chroot/tmux                                                                                                                      
total 8
drwxr-xr-x  7 tmux  wheel  238 Jun 14 11:18 .
drwxr-xr-x  3 root  wheel  102 Jun 14 10:34 ..

1 ответ

Проблема здесь заключается в владении и правах доступа к каталогу /chroot/tmux.

Страница руководства SSHD гласит:

ChrootDirectory

         Specifies the pathname of a directory to chroot(2) to after
         authentication.  All components of the pathname must be root-
         owned directories that are not writable by any other user or
         group.  After the chroot, sshd(8) changes the working directory
         to the user's home directory.

Я полагаю, что конкретный путь к ChrootDirectory (в вашем случае /home/tmux) должен быть root:root и максимум 755 разрешений, похоже, что ваш каталог принадлежит tmux.

Однако обратите внимание, что команда ChrootDirectory лучше всего работает с SFTP, для которого не требуется специальная оболочка. Если вы пытаетесь запустить интерактивные сеансы командной строки SSH (и оболочку) из этого каталога, вам необходимо добавить несколько сначала файлы в chroot, как описано на странице руководства sshd_config:

ChrootDirectory должен содержать необходимые файлы и директории для поддержки сеанса пользователя. Для интерактивного сеанса для этого требуется по крайней мере оболочка, обычно sh(1) и базовые /dev-узлы, такие как null(4), zero(4), stdin(4), stdout(4), stderr(4), arandom(4) и tty(4) устройства. Для сеансов передачи файлов, использующих ``sftp'', дополнительная конфигурация среды не требуется, если используется внутрипроцессный сервер sftp, хотя для сеансов, которые используют ведение журнала, требуется /dev/log внутри каталога chroot (см. Sftp- сервер (8) для деталей).

Другие вопросы по тегам