Я пытаюсь предоставить пользователю только 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