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

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 пользователь больше не chrooted:

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 ..

Проблема здесь в праве собственности и разрешениях на каталог / 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- server (8) для подробностей).