Как настроить сервер SFTP, чтобы пользователи находились в их домашних каталогах? [дубликат]

Я пытался настроить сервер SFTP с несколькими пользователями, переходящими в свои домашние каталоги. Я последовал совету этого руководства ( Ссылка на Archive.org ), а затем выполнил следующие команды в каталогах пользователей

chown root:root /home/user/
chmod 755 /home/user/

В домашнем каталоге каждого пользователя есть дополнительная папка с именем public , который принадлежит его пользователю, чтобы позволить им создавать каталоги, а также загружать и удалять файлы по мере необходимости. (Это было рекомендовано в руководстве, о котором я упоминал ранее)

Теперь, когда я выполняю sftp -P 435 user @ localhost , я получаю следующую ошибку:

Ошибка записи: сломанный канал
{{ 1}} Не удалось прочитать пакет: сброс соединения одноранговым узлом

Как мне продолжить? Конечная идея состоит в том, чтобы каждый пользователь на какой-либо другой машине использовал FileZilla для входа в свои chrooted домашние каталоги, а затем имел возможность загружать каталоги и файлы. Все это в SFTP (потому что он более безопасен)

24
задан 24 April 2019 в 10:30

5 ответов

Та статья также описывает, как получить доступ оболочки chrooted, но так как Вы просто хотите sftp-единственную учетную запись, просто следуете этим инструкциям:

Править /etc/ssh/sshd_config и добавьте строки:

SubSystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no

Найдите строку UsePAM yes и прокомментируйте это:

#UsePAM yes

Не отключая это, мой сервер SSH разрушил бы при перезагрузке / перезапуск. Так как я не должен представлять себе функции PAM, это прекрасно.

Для дополнительной безопасности ограничьте пользователей, которые могут войти в систему. Если Вы забываете добавлять пользователей SFTP к sftp группа, Вы предоставляете им свободный доступ оболочки. Не хороший сценарий. Поскольку SSH не может объединиться AllowUsers и AllowGroups (вход в систему должен выполнить оба правила), необходимо создать дополнительную группу, сказать ssh-users. Добавьте пользователей, которым разрешают войти в систему (youruser ниже) по SSH:

sudo groupadd ssh-users
sudo gpasswd -a youruser ssh-users

И добавьте следующую строку к /etc/ssh/sshd_config:

AllowGroups ssh-users sftp

Теперь возобновите изменение полномочий пользовательского корневого каталога допускать chrooting (пользователь в качестве примера sftp-user):

sudo chown root:sftp-user /home/sftp-user
sudo chmod 750 /home/sftp-user

Создайте каталог в который sftp-user свободно поместить любые файлы в него:

sudo mkdir /home/sftp-user/public
sudo chown sftp-user: /home/sftp-user/public
sudo chmod 750 /home/sftp-user/public

Если Вы работаете в любых проблемах, проверить /var/log/syslog и /var/log/auth.log для деталей. Выполненный ssh или sftp с -vvv опция для сообщений отладки. Для sftp, опция должна появиться перед хостом как в sftp -vvv user@host.

28
ответ дан 23 November 2019 в 01:18

Я использую Ubuntu LTS 12.04 и после большого количества боли, это работало на меня.

Мои настройки для /etc/ssh/sshd_config

Subsystem sftp internal-sftp -f AUTH -l VERBOSE
UsePAM yes
Match group sftp
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no
  1. создайте группу sftp:

    groupadd sftp

  2. Создайте пользователя непосредственно с новой sftp присоединенной группой:

    sudo useradd -d /ftpusers/HomeFolder -m UserName -g sftp -s /bin/false

  3. полномочия набора для использования с ssh для sftp:

    chown root:root HomeFolder

    chmod 755 HomeFolder

  4. сервис перезапуска:

    service ssh restart

Отметьте, домашней папке для нового sftp пользователя нужно дать корневого владельца.

9
ответ дан 23 November 2019 в 01:18

Просто требуемый, чтобы добавить, что полномочия папки дерево каталогов должны быть установлены определенный путь.

строгие требования владения/полномочий sshd диктуют, что каждый каталог в пути chroot должен принадлежать корню и только перезаписываемый владельцем.

Источник

Я имел очень похожую ошибку и исправлял мои полномочия каталога, устранил проблему для меня.

12
ответ дан 23 November 2019 в 01:18

Также отметьте при добавлении директивы Соответствия к файлу конфигурации, что любые директивы, не относящиеся для того, чему Вы соответствуете, могут прекратить работать. Вместо того, чтобы комментировать все, который не совместим, просто переместите любые разделы, который включает директиву Соответствия в конец файла конфигурации.

Кроме того, полномочия, вероятно, должны быть установлены на 755 на chroot каталоге и любых родительских каталогах и владельце к root:root. Лично, я настроил chroot каталог sshd_config, чтобы быть %h, корневым каталогом пользователя, и затем установить их корневой каталог туда, где я хочу, чтобы он был, такие как /var/www/examplewebsite.com. Некоторые могут предпочесть настраивать chroot корневой каталог со статической частью, сопровождаемой именем пользователя, таким как/var/www / % u, однако это требует, чтобы обеспечение chroot dir Вашего пользователя соответствовало своему имени пользователя, конечно.

Для поиска и устранения неисправностей проблем соединения остановите ssh сервис, будучи убеждающимися открыть сессию SSH или два сначала для тестирования и затем запустить демона в интерактивном режиме в режиме отладки для исследования информации об отладке соединения, поскольку это может помочь Вам определить любые проблемы и искать, как зафиксировать их.

Команды: сервис ssh остановка;/usr/sbin/sshd-d

Обязательно запустите ssh снова после того, как Вы будете сделаны! Команда: сервис ssh запускается

0
ответ дан 23 November 2019 в 01:18

Вот пошаговое руководство для разрешения:

  1. Доступ SFTP к/home/bob/uploads для пользовательского боба
  2. Боб блокировки из SSH
  3. Используйте имя пользователя/пароли, а не ключи:

Во-первых, отредактируйте свой /etc/ssh/sshd_config файл:

sudo nano /etc/ssh/sshd

Прокрутите вниз и измените:

PasswordAuthentication yes

и добавьте это внизу:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

Нажмите Ctrl-X, чтобы выйти и сохранить.

Теперь добавьте пользователя:

sudo useradd bob
sudo passwd bob

Теперь добавьте группы и отключите ssh:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

Теперь полномочия набора:

sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads

sudo service sshd restart

Все это, в то время как зарегистрированный как пользователь root (ec2-пользователь на Amazon Linux AMI)

3
ответ дан 23 November 2019 в 01:18

Другие вопросы по тегам:

Похожие вопросы: