Я пытаюсь настроить на своем 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) для подробностей).