SFTP (SSH File Transfer Protocol) — безопасный протокол для работы с файлами на удаленном сервере. Позволяет передавать файлы, создавать каталоги, управлять правами и многое другое. Для пользователя работа по SFTP выглядит аналогично работе по FTP, при этом соединение осуществляется на базе защищенного протокола SSH.
Для подключения по SFTP можно воспользоваться FTP-клиентом, например, FileZilla.
Стандартно для подключения используются следующие реквизиты:
Если используется авторизация по RSA-ключу, то также потребуется указать кодовую фразу (если она была задана при создании RSA-ключа) и загрузить содержимое публичного ключа.
Не рекомендуется подключаться по SFTP от имени root-пользователя. Помимо того, что это небезопасно, это также менее удобно. После подключения под root вы по умолчанию окажетесь в домашней директории root (то есть /root), и для перехода к директории с вашими проектами потребуется перемещаться по файловой структуре. Кроме того, если вы загрузите файлы от имени root, для них будут выставлены пользователь и группа root:root, и веб-сервер не сможет прочитать их. Как следствие, на сайте появятся ошибки доступа к новым файлам.
При установки панели будет создан пользователь fastuser. Для подключения под данным пользователем необходимо использовать реквизиты:
После подключения вы окажетесь в директории /var/www/fastuser/data
Директории сайтов размещаются по адресу: /var/www/fastuser/data/www/имя_домена
Если вы создали дополнительного пользователя (например, user), для подключения используйте его реквизиты:
После подключения вы окажетесь в директории /var/www/user/data
Директории сайтов размещаются по адресу: /var/www/user/data/www/имя_домена
По умолчанию в VestaCP создан пользователь admin. Для подключения под данным пользователем необходимо использовать реквизиты:
После подключения вы окажетесь в директории /home/admin/
Директории сайтов размещаются по адресу: /home/admin/web/имя_домена
Если вы создали в VestaCP дополнительного пользователя (например, user) и добавили сайт в разделе WEB от его имени, подключиться по SFTP нужно с его реквизитами:
После подключения вы окажетесь в директории /home/user/
Директории сайтов размещаются по адресу: /home/user/web/имя_домена
Перед подключением по SFTP убедитесь, что у нужного пользователя есть shell-доступ. Это можно проверить в ispmanager в разделе Учетные записи — Пользователи — выделить нужного пользователя — Изменить.
Необходимо, чтобы был отмечен пункт Доступ к shell.
По умолчанию в ispmanager создан пользователь www-root. Если вы размещали сайты в разделе «WWW-домены» от имени данного пользователя, то подключиться по SFTP можно с реквизитами:
После подключения вы окажетесь в директории /var/www/www-root/data/
Директории сайтов размещаются по адресу /var/www/www-root/data/www/имя_домена
Если вы создали дополнительного пользователя (например, user) и добавляли сайты от его имени, для подключения используйте его реквизиты:
После подключения вы окажетесь в директории /var/www/user/data
Директории сайтов размещаются по адресу /var/www/user/data/www/имя_домена
По умолчанию в системе Bitrix 7 создан пользователь bitrix. При подключении по SFTP необходимо использовать реквизиты:
После подключения вы окажетесь в директории /home/bitrix/
Директории сайтов размещаются по адресам /home/bitrix/www/ (для основного сайта) и /home/bitrix/ext_www/имя_домена (для дополнительных сайтов, созданных средствами BitrixVM).
По умолчанию в такой сборке для работы веб-серверов используется пользователь www-data. Для того, чтобы работать от другого пользователя, в том числе подключаться по SFTP, необходимо выполнить настройку по инструкции ниже.
Подключитесь к серверу по SSH и выполните следующие действия:
useradd -d /var/www/ sftpuser
passwd sftpuser
Появится запрос на ввод пароля — введите его. Обратите внимание, что символы не будут отражены на экране во время ввода.
usermod -aG www-data sftpuser
Сделайте группу www-data основной:
usermod -g www-data sftpuser
nano /etc/nginx/nginx.conf
В нем замените строку:
user www-data;
На:
user sftpuser;
И перезапустите Nginx:
service nginx restart
Проверьте, от какого пользователя запускается веб-сервер Nginx. Это можно сделать командой:
ps auxwwww | grep nginx
В выводе команды видим, что запуск выполняется от sftpuser.
В Ubuntu / Debian:
/etc/apache2/apache2.conf
Или:
/etc/apache2/envvars
В CentOS:
/etc/httpd/httpd.conf
Или:
/etc/httpd/envvars
В нашей сборке LAMP задавать переменные необходимо в файле /etc/apache2/envvars.
В целом же, чтобы проверить, в каком файле необходимо задавать переменные, необходимо его просмотреть — в том из них, который будет содержать www-data, необходимо заменить этот значение на sftpuser.
Откройте конфигурационный файл с переменными сервера Apache2:
В Ubuntu / Debian:
nano /etc/apache2/envvars
В CentOS:
nano /etc/httpd/envvars
Замените строку:
export APACHE_RUN_USER=www-data
На:
export APACHE_RUN_USER=sftpuser
Далее перезапустите веб-сервер. Команда для Debian/Ubuntu:
service apache2 restart
Для CentOS:
service httpd restart
И проверьте, от какого пользователя запускается Apache2, с помощью команды:
ps auxwwww | grep apache
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
chown -R sftpuser:www-data /var/www/
На этом настройка завершена.
Теперь необходимо проверить подключение по SFTP, используя следующие реквизиты для авторизации: