Файлы сайта можно открывать прямо через панель управления хостингом, но для постоянной работы этот способ не всегда удобен. Когда нужно загрузить сотни фотографий, скачать целый каталог, заменить несколько десятков файлов или регулярно работать с сайтом, проще подключиться к серверу непосредственно с компьютера.
Для этого используются протоколы передачи файлов. Чаще всего владелец сайта сталкивается с FTP и SFTP. Названия похожи настолько, что SFTP легко принять за защищенную версию обычного FTP. На самом деле это разные технологии, хотя с точки зрения пользователя они решают похожую задачу.
После подключения на экране обычно появляются две файловые системы. С одной стороны находятся папки вашего компьютера, с другой файлы на хостинге. Нужный файл можно перенести на сервер примерно так же, как между двумя обычными папками.
Разберемся, чем FTP отличается от SFTP, где взять данные для подключения и почему при наличии выбора сегодня разумнее использовать защищенный вариант.
Как работают FTP и SFTP
FTP расшифровывается как File Transfer Protocol. Это один из старейших сетевых протоколов для передачи файлов между компьютерами. Его задача довольно проста: клиент подключается к серверу, проходит авторизацию и получает возможность работать с доступными ему файлами и каталогами.
На практике клиентом обычно является специальная программа на компьютере, а сервером выступает хостинг.
После подключения можно загружать файлы на сервер, скачивать их обратно, создавать каталоги, переименовывать и удалять объекты. В зависимости от сервера и программы доступны дополнительные операции.
Такой способ особенно удобен, когда файлов много. Представьте сайт с несколькими тысячами изображений. Загружать их небольшими порциями через форму в браузере неудобно. FTP-клиент позволяет открыть нужный каталог и передать сразу большое количество данных.
У классического FTP есть серьезный недостаток: сам по себе он не обеспечивает современного защищенного канала для передачи учетных данных и информации. Для публичного интернета это плохое свойство, особенно если подключение выполняется через чужую или ненадежную сеть.
Для защищенной работы существуют другие решения. Одно из них называется SFTP.
SFTP работает через SSH. Соединение шифруется, поэтому логин, команды и передаваемые данные не путешествуют между компьютером и сервером в открытом виде.
Именно поэтому при наличии SFTP я бы выбирала его вместо обычного FTP.
Есть еще FTPS, из-за которого терминология становится немного запутанной. FTPS представляет собой FTP с защитой TLS. SFTP устроен иначе и работает через SSH. Это не два названия одного протокола.
Обычному владельцу сайта необязательно разбираться в устройстве каждого из них. Достаточно запомнить практическую разницу: если хостинг предлагает SFTP, это хороший вариант для безопасной работы с файлами.
FTP при этом никуда не исчез. Он по-прежнему поддерживается хостингами, программами и старым программным обеспечением. Поэтому слово FTP часто используется почти как общее название удаленной работы с файлами, хотя фактическое соединение может происходить другим способом.
Что нужно для подключения к хостингу
Для начала понадобится программа, которая умеет работать с нужным протоколом. Таких клиентов много, причем некоторые поддерживают сразу FTP, FTPS и SFTP.
Но одной программы недостаточно. Ей нужно сообщить, к какому серверу подключаться и под какой учетной записью.
Обычно потребуются четыре основных параметра:
- адрес сервера;
- имя пользователя;
- пароль;
- порт.
Эти данные предоставляет хостинг. Их можно найти в панели управления, письме после создания услуги или документации провайдера.
Адресом сервера может быть специальное имя хостинга, имя вашего домена или IP-адрес. Не нужно угадывать его самостоятельно. Используйте значение, указанное провайдером.
Логин тоже необязательно совпадает с логином личного кабинета. На хостинге могут существовать отдельные FTP-пользователи, каждый со своим паролем и доступом только к определенному каталогу.
Это полезная возможность. Например, если разработчику нужно дать доступ только к одному сайту, необязательно сообщать ему пароль от всего аккаунта. Можно создать отдельного пользователя и ограничить его нужной директорией, если панель хостинга это позволяет.
С портом тоже лучше не экспериментировать. Для классического FTP традиционно используется порт 21, а SFTP часто работает через SSH на порту 22. Но провайдер может использовать другую конфигурацию. Поэтому правильный порт нужно брать из настроек конкретного хостинга.
При создании подключения программа попросит выбрать протокол. Именно здесь важно не перепутать FTP и SFTP. Если сервер ожидает SFTP, а клиент пытается установить обычное FTP-соединение, правильные логин и пароль ситуацию не исправят.
После ввода данных можно выполнить подключение.
При первом соединении по SFTP программа может показать информацию о ключе сервера и попросить подтвердить его. Такое окно само по себе не означает ошибку. SSH использует ключи в том числе для проверки сервера, к которому происходит подключение.
Не стоит автоматически подтверждать неожиданно изменившийся ключ сервера, если раньше соединение уже работало. Причина может быть вполне нормальной, например провайдер перенес услугу или изменил конфигурацию, но лучше сначала убедиться в этом.
После успешной авторизации пользователь видит доступную ему структуру каталогов.
И здесь появляется следующая типичная ошибка новичка: подключение получилось, но совершенно непонятно, куда класть сайт.
Куда загружать файлы и как ничего не сломать
На сервере может находиться несколько каталогов, и далеко не каждый из них является корнем сайта.
У разных хостингов нужная директория называется по-разному. Часто встречаются public_html, www, htdocs и другие варианты. Если на аккаунте размещено несколько сайтов, каждый домен может иметь собственный каталог.
Поэтому не нужно сразу переносить файлы в первую папку, которую показал FTP-клиент.
Откройте настройки сайта в панели управления и посмотрите, какой каталог назначен его корневой директорией. Именно оттуда веб-сервер берет файлы, которые должны быть доступны посетителям.
У простого статического проекта в корне обычно находится файл главной страницы, например index.html. У WordPress там можно увидеть wp-admin, wp-content, wp-includes и набор PHP-файлов.
Если загрузить сайт уровнем ниже, может получиться лишняя вложенность. Например, вместо файлов непосредственно в public_html появится каталог public_html/site/, и по основному адресу будет открываться совсем не то, что ожидалось.
Перед заменой существующего сайта особенно полезно сделать резервную копию.
FTP и SFTP дают непосредственный доступ к файлам. Если удалить wp-config.php, тему оформления или каталог с загруженными изображениями, программа не будет рассуждать, действительно ли это хорошая идея. Она выполнит разрешенную сервером операцию.
По этой же причине не следует удалять неизвестные служебные каталоги ради освобождения места.
Через файловый клиент можно не только передавать данные, но и менять права доступа, если это поддерживается сервером. Здесь тоже нужна осторожность. Значения 644, 755 и другие права имеют конкретное назначение, а установка максимально широких разрешений не является универсальным способом исправить сайт.
Если задача состоит только в загрузке новой фотографии или CSS-файла, права остальных каталогов вообще не нужно трогать.
Полезно следить и за направлением передачи. В окне клиента одновременно находятся локальные и серверные файлы, поэтому при невнимательности легко скачать старую версию поверх новой или, наоборот, загрузить локальный устаревший файл на работающий сайт.
Перед заменой важных файлов сравните дату изменения и размер, а еще лучше сохраните копию исходной версии.
Для больших загрузок файловый клиент удобнее браузера еще по одной причине. Некоторые программы умеют продолжать прерванную передачу. Если соединение оборвалось на большом файле, не всегда приходится начинать операцию с самого начала.
Но после массовой загрузки желательно убедиться, что все данные действительно передались. Нулевой размер файла или незавершенная передача способны привести к ошибке сайта, хотя на первый взгляд нужное имя уже присутствует в каталоге.
Почему SFTP обычно лучше обычного FTP
Главная причина заключается не в скорости и не в более красивом названии, а в защите соединения.
При SFTP операции выполняются через зашифрованный SSH-транспорт. Это особенно важно, потому что доступ к файлам хостинга является чувствительной учетной записью. Получив такие данные, посторонний может не просто посмотреть содержимое каталога, а изменить сайт, внедрить вредоносный код или удалить информацию.
Поэтому защищать нужно не только пароль как строку символов, но и канал, по которому он передается.
Еще одно преимущество SFTP связано с SSH-аутентификацией. Сервер может поддерживать вход не только по паролю, но и с помощью ключей.
В таком случае создается пара ключей. Закрытый остается у пользователя, а открытый добавляется на сервер. Конкретная настройка зависит от хостинга, и на обычном виртуальном тарифе доступ к SSH и SFTP может предоставляться с определенными ограничениями.
Использование ключей особенно удобно разработчикам и администраторам, которые регулярно работают с сервером. Для владельца небольшого сайта обычного надежного пароля через SFTP зачастую достаточно, если провайдер допускает такой способ авторизации.
Сам пароль при этом должен быть уникальным. Не используйте комбинацию, которая одновременно защищает почту, WordPress, социальные сети и хостинг.
Если доступ временно передается другому человеку, лучше создать отдельную учетную запись, когда хостинг позволяет это сделать. После окончания работы ее можно удалить, не меняя основной доступ владельца.
Не сохраняйте пароль от сервера на чужом компьютере и не отправляйте его в открытом виде в публичных чатах или задачах.
Отдельный вопрос возникает при выборе между файловым менеджером панели и SFTP.
Однозначного победителя здесь нет, потому что инструменты удобны для разных задач.
Если нужно один раз загрузить файл подтверждения, заменить favicon или посмотреть содержимое небольшого конфигурационного файла, встроенный файловый менеджер может оказаться быстрее. Не нужно устанавливать программу и создавать подключение.
Если же вы регулярно работаете с файлами, скачиваете каталоги, обновляете проект или переносите большое количество данных, отдельный клиент обычно удобнее.
Для разработчика SFTP практически превращает сервер в еще одно рабочее файловое пространство, хотя обращаться с рабочим сайтом все равно нужно осторожно.
Именно здесь возникает соблазн редактировать файлы непосредственно на сервере. Для небольшой срочной правки это иногда допустимо, но превращать рабочий сайт в единственное место хранения кода опасно.
Если файл случайно испорчен и его предыдущей версии нигде нет, FTP не поможет вернуть содержимое. Он является способом передачи файлов, а не системой резервного копирования и не историей изменений.
Поэтому важные проекты должны иметь отдельные резервные копии, а разработка кода обычно ведется с использованием системы контроля версий.
Стоит помнить и еще одну вещь: доступ по SFTP не делает безопасным сам компьютер пользователя. Если устройство заражено вредоносной программой и на нем сохранены учетные данные хостинга, шифрование соединения не решает эту проблему.
Поэтому защита складывается из нескольких частей: безопасного протокола, надежной авторизации, аккуратного хранения данных доступа и нормальной защиты устройства.
Для владельца обычного сайта практический выбор довольно простой. Если нужно лишь изредка заменить один файл, можно пользоваться файловым менеджером хостинга. Если работа с файлами происходит регулярно, имеет смысл настроить отдельный клиент. А если провайдер предлагает и FTP, и SFTP, для обычной работы предпочтительнее выбрать SFTP.
При выборе самого хостинга также полезно проверить, какой доступ к файлам он предоставляет. Наличие файлового менеджера удобно для быстрых операций, SFTP нужен для защищенной удаленной работы, а возможность создавать отдельных пользователей пригодится, если сайтом занимаются несколько человек.
FTP и SFTP не являются сложными инструментами системного администратора. Для пользователя это всего лишь еще один способ добраться до файлов своего сайта. Главное один раз правильно указать сервер, протокол, логин и порт, найти каталог проекта и не относиться к рабочим файлам как к папке, где можно без последствий удалить все непонятное.








