У меня CentOs выпуск 6.4 с Digital Ocean, и я хотел бы успешно создавать SFTP-пользователей и помещать их в домашний каталог пользователя chroot, но боюсь, что я все испортил.
Я перепробовал много вещей, слишком много, чтобы перечислять их здесь, поскольку большинство из них, вероятно, неверны или не будут иметь особого смысла, но я считаю, что должен быть правильный процесс, и я попробовал следующее:
Создать группу для sftp
: -
groupadd sftp
Создайте пользователя и установите его домашний каталог: -
useradd -d /var/www/vhosts/domain.com dummyuser
Установите пароль для пользователя: -
passwd dummyuser
Измените группу пользователей на 'sftp': -
usermod -g sftp dummyuser
Установите оболочку пользователя на /bin/false
: -
usermod -s /bin/false dummyuser
Редактировать подсистему в sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Добавьте следующее в конец sshd_config
файла: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Я удостоверяюсь, что все следующие каталоги root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Если я затем пытаюсь войти на сервер через SFTP с пользователем dummyuser
(в WinSCP), я получаю следующее: -
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Все, чего я хочу добиться - это отправить пользователя в его домашний каталог. Я также установил и настроил vsftpd. Пользователи могли войти в систему нормально, но имели бы доступ ко всему серверу - мне просто не удалось заставить работать тюрьму вообще.
редактировать
Забыл упомянуть, я тогда перезапустил sshd
также: -
service sshd restart
Когда ошибка возникает в WinSCP, их страница справки об этом здесь .
Результаты журнала
/var/log/secure
Я заменил реальное имя сервера на server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
sshd
? Что находится в лог файлах на сервере?/var/log/secure
.vhosts
естьroot:root
.Ответы:
Это распространенная ошибка:
все папки вплоть до chroot home должны принадлежать и быть доступны для записи только
root
пользователю.Папки не могут быть доступны для записи группой, даже если группа есть
root
.источник
namei -l /var/www/vhosts
Я нашел и успешно настроил sftp на CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Отредактируйте конфигурацию sshd:
vim / etc / ssh / sshd_config
Выйти и сохранить.
Потом:
Для нового пользователя с именем «testuser» (член группы «sftp-only» с GID 500):
(я использую пустой / etc / skel2, поэтому CentOS по умолчанию не копируется CentOS)
Таким образом, в этом примере я сделал это, чтобы предоставить безопасный доступ внешним консалтинговым фирмам, которые управляют веб-сайтами. Вы могли бы после создания всего этого сделать:
Можно настроить все это по мере необходимости.
Надеюсь, это помогло!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
источник
service sshd restart