Я просто попробовал следующее, чтобы добавить нового пользователя, chroot пользователя и дать ему доступ к папке / home / me / public_html через sftp и ssh:
##the following command are done by root or a sudo user
useradd <username>
##add password for new user
passwd <username>
## add user to sudo group which could be wheel or sudo depending on your setup
usermod -G wheel <username>
##add user to apache as the public html folder is part of that group
usermod -G apache <username>
##Edit sshd_config to chroot the user. Path here below is on Centos or Redhat and with nano editor up and running
nano /etc/ssh/sshd_config
##add the end of the file add
Match User <username>
ChrootDirectory /path/of/choice
ForceCommand internal-sftp
## control X and save
service sshd restart
в sshd_config у меня сейчас
Match User <username>
ChrootDirectory /home/me/public_html
ForceCommand internal-sftp был удален как строка, так как нет необходимости запрещать доступ по SSH на основе общего, сделанного здесь ниже.
Когда я пытаюсь войти сейчас, я вижу
ssh <username>@domain.com
debug1: Next authentication method: password
<username>@domain.com's password:
debug1: Authentication succeeded (password).
Authenticated to domain.com ([xx.xxx.xx.xxx]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Write failed: Broken pipe
Используя SFTP в журнале, я вижу
Trace: Sent password
Trace: Access granted
Trace: Connection reset by peer
Error: Connection reset by peer
Error: Could not connect to server
Настроить chroot для общего доступа по SSH намного сложнее, чем настроить chroot только для SFTP. Функция «internal-sftp» не требует, чтобы сервер SSH запускал какие-либо внешние программы, поэтому среда chroot не должна поддерживать запуск внешних программ. Чтобы обеспечить общий доступ по SSH, вам необходимо настроить среду chroot с дополнительными файлами, чтобы она могла запускать внешние программы.
Детали настройки среды chroot зависят от конкретной операционной системы, которую вы используете. Вот несколько примеров страниц, которые должны дать вам представление о том, что нужно делать.
ForceCommand внутренний sftp
Вы не сможете подключиться к системе по ssh, если принудительно используете internal-sftp.
У вас, вероятно, есть и другие проблемы с конфигурацией, например, я ожидаю, что вы не удовлетворяете требованиям к пользователю файла: групповое владение - из документации ...
ChrootDirectory Задает путь к chroot (2) после аутентификации. Этот путь и все его компоненты должны быть корневыми каталогами, которые не доступны для записи другим пользователям или группам. После chroot sshd (8) меняет рабочий каталог на домашний каталог пользователя.