CentOS 8: sftp chroot для пользователя

Ничего сокровенного, просто заметка чтобы вспомнить если понадобится.

В файле /etc/ssh/sshd_config прописываем нужные настройки для группы, в которую включен нужный пользователь:
Match Group rock
        ChrootDirectory /data/%u
        ForceCommand internal-sftp


Мне кажется, вместо конструкции "/data/%u" можно указать просто "~", но я решил использовать более явную.

А также включаем внутренний sftp:
Subsystem       sftp    internal-sftp


Однако, тут есть подводный камень. Чтобы sshd мог сделать chroot папка пользователя должна принадлежать root-у и права на запись ни у кого другого быть не должно, т.е. установить на папку право на запись для группы не получится. Это приводит к тому, что пользователь не может ничего записать в свою папку и остаётся писать во вложенную папку, которую, к тому же, он не может создать. Для данной моей задачи всё это не критично, так что пойдёт.

Ну и попутно можно настроить вход по публичному ключу. А если с какой машинки публичный ключ типа dss (вроде бы устаревший алгоритм), а демон ругается на него примерно вот так:
sshd[8456]: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]


то надо добавить в конфиг sshd вот такой параметр:
PubkeyAcceptedKeyTypes=+ssh-dss

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.