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

SFTP Chroot Ubuntu 10.10

Я пытаюсь предоставить пользователю только SFTP доступ к его домашнему каталогу.

Это строка / etc / passwd для пользователя:

bob:x:1003:1003::/home/bob:/bin/false

Я отредактировал файл / etc / ssh / sshd_config вот так:

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

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Match user bob
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Затем перезапускаю ssh: sudo service ssh restart

Если я попробую sftp bob@myserver.com все работает хорошо.

Затем я пытаюсь завести Chroot-боб к нему домой, поэтому добавляю ChrootDirectory /home/bob В правильном месте:

Match user bob
            ChrootDirectory /home/bob
            AllowTcpForwarding no
            X11Forwarding no
            ForceCommand internal-sftp

Я изменил разрешение на проезд домой:

drwxr-xr-x  3 root    root      4096 2014-02-27 13:13 bob

Теперь, когда я пробую sftp bob@myserver.com, я получаю следующий ответ:

Write failed: Broken pipe
Connection closed

моя версия OpenSSH - 1: 5.5p1-4ubuntu6

Где я не прав ??? Где я могу найти решение моей проблемы ???

РЕДАКТИРОВАТЬ: после небольшой отладки я обнаружил это сообщение об ошибке:

bad ownership or modes for chroot directory component "/"

Я думаю, вам просто нужно указать ChrootDirectory /home он автоматически заменит / home / bob. В противном случае он смотрит в /home/bob/bob

Изменить: также убедитесь, что каталог chroot принадлежит root и не доступен для записи для группы. Если вам нужен каталог с возможностью записи, вам нужно создать подпапку

chown root /home/bob
chmod go-w /home/bob
mkdir /home/bob/writeable
chown bob:sftponly /home/bob/writeable
chmod ug+rwX /home/bob/writeable

человек sshd_config

Specifies the pathname of a directory to chroot(2) to after authentication.  All components of the pathname must be root-owned directories that are not writable by any other user or group.

Это работает, потому что / home принадлежит root и не доступен для записи другим пользователям.

Match user pippo
        ChrootDirectory /home
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Таким образом, это не работает, потому что ChrootDirectory / home / pippo не принадлежит root и доступен для записи другим пользователям.

Match user pippo
        ChrootDirectory /home/pippo
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp