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) для деталей).