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

Пользователь chrooted ssh не может ssh на сервер: сломанный канал

Я просто попробовал следующее, чтобы добавить нового пользователя, 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) меняет рабочий каталог на домашний каталог пользователя.