Я пытаюсь использовать chroot для настройки пользователя, который может входить в систему через ssh и ограничивать доступ к /var/www
каталог. Сервер находится на AWS под управлением 64-разрядной версии Amazon Linux, установлен openssh. Я использовал ssh-keygen для генерации ключей.
Прежде чем я отредактирую sshd_config
файла, я могу войти в систему с именем пользователя и закрытым ключом, пользователь запускается в /home/my-username
каталог, поэтому ключ действителен.
Я изменил sshd_config
файл следующим образом:
Subsystem sftp internal-sftp
Match User my-username
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Затем я перезапустил sshd.
В ChrootDirectory /var/www
принадлежит root: root без групп, имеющих права записи до этой точки в дереве - установка Apache по умолчанию.
Когда я вхожу в систему с моим именем пользователя и ключом, сеанс немедленно отключается. Я проверил /var/log/secure
и найдите эту запись:
Nov 3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: Accepted publickey for my-username from xxx.xxx.xxx.xxx port 61821 ssh2
Nov 3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: pam_unix(sshd:session): session opened for user my-username by (uid=0)
Nov 3 19:53:51 ip-xxx.xxx.xxx.xxx sshd[2945]: pam_unix(sshd:session): session closed for user my-username
Я прочитал множество тем на многих форумах и увидел различные решения, некоторые из которых я пробовал безуспешно. Я хотел бы, чтобы это было как можно проще. Цель состоит в том, чтобы создать учетную запись пользователя для разработчика, которому нужно только загружать файлы на веб-сервер с помощью WinSCP, в случае по умолчанию для /var/www/html
.
Я нашел эту ветку - Пользователь мгновенно отключается после успешного подключения на chrooted SSH - но не уверен, что это напрямую связано с моей проблемой.
Я думаю, это может иметь какое-то отношение к моей конфигурации PAM. Опять же, это установка по умолчанию.
Заранее благодарим вас за любое направление, которое вы можете предоставить.
Среды Chroot требуют наличия всех библиотек и двоичных файлов, необходимых для нормальной работы. Сюда входят все файлы общих объектов, с которыми связана оболочка входа. Если вы скопируете дополнительные двоичные файлы команд в этот chroot, вам также потребуются их зависимости компоновщика.
/var/www/dev
, /var/www/lib
, и т.д.?