RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
linux:sftp_chroot


Настройка SFTP сhroot

Как предоставить пользователю доступ к серверу по SFTP протоколу.

Добавляем в файл /etc/ssh/sshd_config

Subsystem sftp internal-sftp

Match group sftponly
    ChrootDirectory /home/%u 
    X11Forwarding no  
    AllowTcpForwarding no  
    ForceCommand internal-sftp 

В нём же комментируем строку

Subsystem sftp /usr/lib/openssh/sftp-server

Создаём новую группу для доступа по sftp

addgroup --system sftponly

Создаём нового пользователя и добавляем его в группу sftponly

adduser john
usermod -a -G sftponly john

Справка по usermod - usermod(8) - Linux man page

-a, --append

Add the user to the supplementary group(s). Use only with the -G option.

Ставим правильные права на каталог /home/john

chmod 750 /home/john
chown root:john /home/john

Если этого не сделать, то в /var/log/auth.log будет ошибка bad ownership.

Sep 25 05:23:38 vm1337 sshd[17331]: Accepted password for john from a.b.c.d port 54512 ssh2
Sep 25 05:23:38 vm1337 sshd[17331]: pam_unix(sshd:session): session opened for user john by (uid=0)
Sep 25 05:23:38 vm1337 sshd[17340]: fatal: bad ownership or modes for chroot directory "/home/john"
Sep 25 05:23:38 vm1337 sshd[17331]: pam_unix(sshd:session): session closed for user john

В WinSCP это выглядит так

В Ubuntu также была ошибка Directive 'UsePAM' is not allowed within a Match block.

# systemctl restart ssh
Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details.

Смотрим systemctl status ssh.service

systemd[1]: Stopped OpenBSD Secure Shell server.
systemd[1]: Starting OpenBSD Secure Shell server...
sshd[17397]: /etc/ssh/sshd_config line 98: Directive 'UsePAM' is not allowed within a Match block
systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
systemd[1]: Failed to start OpenBSD Secure Shell server.
systemd[1]: ssh.service: Unit entered failed state.
systemd[1]: ssh.service: Failed with result 'exit-code'.

Опция UsePAM yes должна быть перед секцией Match.

Правильно

UsePAM yes
Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Неправильно

Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
UsePAM yes

Пробуем подключиться (например через WinSCP).

Итог: пользователь john может подключаться к хосту по протоколу sftp и не может выйти за пределы каталога /home/john. Внутри каталога /home/john у пользователя полные права на чтение/запись.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
linux/sftp_chroot.txt · Последнее изменение: 2017/10/15 02:32 (внешнее изменение)