что такое ssh и ftp
SSH и FTP. Что это и как с ними работать?
При покупке хостинга владелец хостинга присылает Вам регистрационные данные, в которых помимо доступов к административной панели также есть доступ по FTP и по SSH.
Расскажу, что это и как связано с Вашим сайтом. Остановимся сначала на FTP. FTP (File Transfer Protocol) — то есть это протокол для передачи данных. Работает он по 21 порту и фактически нужен для того, чтобы Вы смогли скопировать файлы со своего компьютера на сервер, где располагается Ваш хостинг посредством FTP клиента.
В картинках это выглядит так
Своего компьютера Вы запускаете FTP клиент, инициализируете соединение с сервером, получая доступ к ресурсам, отведенным Вам хостером и производите изменения либо на файлах сервера, либо копируя файлы со своего компьютера.
Поговорим о FTP клиентах. Таких программ очень и очень много, но по тестам различных источником и по удобству использования можно считать одним из самых удобных клиентов программу FileZilla.
Создадим настройки нового соединения в этом FTP-клиенте.
работа с filezilla 1
Сначала переходим в пункт «открыть Менеджер сайтов»
работа с filezilla
Таким образом подключение мы создали. Далее при работе с программой нужно будет в списке сайтов выбирать именно это подключение. Данный FTP клиент очень прост в использовании, поэтому из особенностей можно только заметить возможность выставлять атрибуты на файлы. Остальное делается простым перетаскиванием мышкой.
Более безопасным для использования программным обеспечением является софт WinSCP. Принцип работы у нее аналогичен Filezilla, но для работы в данной программе мы можем использовать также и безопасное FTP соединение — SFTP. Интерфейс подключения нового хоста аналогичен Filezilla
Подключение нового хоста в winscp
Разберем теперь что такое SSH соединение. Из википедии
SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet иrlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем. Говоря простым языком это также протокол передачи данных, но шифрованный.
Работает с рабочей станции также с помощью клиента. Самым распространенным SSH-клиентом является программа Putty.
Настройка конфигурации в Putty
Я же предпочитаю пользоваться программным обеспечением Bitvise SSH Client.
Настройка конфигурации в Bitvise SSH Client
Особенностью данного клиента является то, что при работе он одновременно открывает и SSH соединение и SFTP-соединение, что удобно если одновременно хотим работать на самом сервере по SSH и передавать файлы с компьютера. SSH открывает доступ к серверу не интерфейсно, а именно в консольном виде, то есть мы попадаем на Unix сервер в режим командной строки. Подобной возможностью также обладает WinSCP, но предварительно требуется установка Putty на компьютер.
Вызов putty из winscp
Использование консоли на Unix новичкам я бы не советовал, так как Unix — система умная и менее user frendly что ли и если вы ей говорите что-либо удалить, то она удалит безвозвратно и без вопросов, что очень опасно.
Таким образом из данных, которые прислал хостер, начинающим создателям интернет-магазина я бы рекомендовал использовать только FTP-клиента (лучше SFTP), рассмотрев SSH строго для ознакомления.
Что такое SSH и чем он отличается от FTP
Различные способы общения используются в разных случаях. Есть различные возможности использования и различные подводные камни. Но как именно связаные друг с другом протоколы SSH и FTP, неясно большинству.
«Оболочка» и учётная запись «оболочки»
Давайте попробуем разобраться с некоторой базовой терминологией. Что бы понять назначение SSH, необходимо знать некоторые базовые элементы.
Shell (оболочка) компьютера, является частью программного обеспечения, которое позволяет пользователю напрямую взаимодействовать с ядром различных операционных систем. «Оболочка» может иметь графический интерфейс и/или интерфейс командной строки (т.н. консоль).
Учётная запись в оболочке, является личной учётной записью, которая предоставляет пользователю доступ к оболочке на другом компьютере. Раньше они были обычным явлением и поставлялись провайдерами Интернет-услуг, которые использовались для хранения файлов, учетных записей электронной почты, групп новостей и многого другого. Общим знаменателем является то, что учетная запись оболочки используется для ввода команд на удаленном компьютере.
SSH использует шифрование с открытым ключом и был разработан в качестве замены Telnet и других небезопасных протоколов. Две основные версии, SSH-1 и SSH-2, в настоящее время являются доминирующими протоколами для доступа к учетным записям оболочки.
В наши дни SSH используется для входа и выполнения кода на удаленных хостах, просмотра веб-страниц с использованием зашифрованных прокси-клиентов и передачи файлов.
Протокол безопасной передачи файлов (SFTP) и FTP
Хоть это и не указано в документации для конечного пользователя, SFTP можно рассматривать как надежного родственника FTP. Последний передает все данные в виде простого текста. Таким образом, перехват пакетов может раскрыть важные и личные данные, включая ваше имя пользователя и пароль! SFTP, являясь расширением SSH-2, использует защиту с помощью открытого ключа. Это означает, что данные зашифрованы, когда они передаются, и потенциальные перехваты относительно бесполезны.
Я надеюсь, что вы узнали что-то из этой статьи. Если у вас есть какие-либо вопросы или предложения, отправляйтесь в раздел комментариев ниже!
Протоколы SFTP и FTPS
Буквально неделю назад я писал реферат по обозначенной в заголовке теме и столкнулся с тем, что, скажем так, познавательной информации в сети не так уж много. В основном сухие факты и инструкции по настройке. Поэтому я решил несколько подкорректировать текст и выложить его в качестве статьи.
FTP (File Transfer Protocol) – протокол передачи файлов по сети. Является одним из базовых протоколов Ethernet. Появился в 1971 году и изначально работал в сетях DARPA. На данный момент, как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). Определён в RFC 959.
Протокол определяет следующее:
Взаимодействие между клиентом и сервером
Рассмотрим происходящие при работе FTP процессы подробнее. Соединение инициализируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.
Основная особенность FTP в том, что он использует двойное подключение. Одно из них используется для передачи команд серверу и происходит по умолчанию через TCP-порт 21, который может быть изменён. Управляющее соединение существует все время, пока клиент общается с сервером. Канал управления должен быть открыт при передаче данных между машинами. В случае его закрытия передача данных прекращается. Через второе происходит непосредственная передача данных. Оно открывается каждый раз, когда осуществляется передача файла между клиентом и сервером. В случае, если одновременно передаётся несколько файлов, для каждого из них открывается свой канал передачи.
FTP может работать в активном или пассивном режиме, от выбора которого зависит способ установки соединения. В активном режиме клиент создаёт управляющее TCP-соединение с сервером и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер запустит TCP-соединение с этим адресом и номером порта. В случае, если клиент находится за брандмауэром и не может принять входящее TCP-соединение, может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных со своего произвольного порта.
Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и организует прямой канал данных между ними. Команды управления идут через пользователя, а данные напрямую между серверами.
При передаче данных по сети могут быть использованы четыре представления данных:
Передача данных может осуществляться в любом из трёх режимов:
FTP server – это сервер, который предусматривает возможность использования протокола передачи файлов. Он обладает определенными особенностями, отличающими его от обычных веб-серверов:
FTP client – это программа, позволяющая подключиться к удаленному серверу по FTP и также выполнять на нем необходимые действия с элементами файловой системы. Клиентом вполне может быть браузер, в адресную строку которого следует ввести адрес, представляющий собой путь до определенного каталога или файла на удаленном сервере, в соответствии с общей блок-схемой URL:
Однако же, использование веб-обозревателя в таком разрезе позволит лишь просмотреть или скачать интересующие файлы. Для того, чтобы в полной мере задействовать все плюсы FTP, в качестве клиента следует применить специализированное программное обеспечение.
FTP-аутентификация использует схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль – командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Пользователи могут, если сервер поддерживает эту особенность, войти в систему без предоставления учётных данных, но сервер может предоставить только ограниченный доступ для таких сессий.
Хост, обеспечивающий FTP-сервис, может предоставить анонимный доступ к FTP. Пользователи обычно входят в систему как «anonymous» (может быть регистрозависимым на некоторых FTP-серверах) в качестве имени пользователя. Хотя обычно пользователей просят прислать адрес их электронной почты вместо пароля, никакой проверки фактически не производится. Многие FTP-хосты, предоставляющие обновления программного обеспечения, поддерживают анонимный доступ.
Схема протокола
Взаимодействие «клиент-сервер» при FTP-соединении можно наглядно представить следующим образом:
Безопасный FTP
FTP изначально не задумывался как защищенный, поскольку предназначался для связи между несколькими военными объектами и учреждениями. Но с развитием и распространением интернета опасность несанкционированного доступа возросла во много раз. Возникла необходимость защиты серверов от различного рода атак. В мае 1999 авторы RFC 2577 свели уязвимости в следующий список проблем:
Обычный FTP не обладает возможностью передачи данных в зашифрованном виде, вследствие чего имена пользователей, пароли, команды и другая информация могут при желании легко и просто быть перехвачены злоумышленниками. Обычное решение этой проблемы — использовать «безопасные», TLS-защищённые версии уязвимых протокола (FTPS) или же другой, более защищённый протокол, вроде SFTP/SCP, предоставляемого с большинством реализаций протокола Secure Shell.
FTPS (FTP + SSL) – расширение стандартного протокола передачи файлов, добавляющее в его базовый функционал создание шифрованных сессий с помощью протокола SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день защита обеспечивается его более продвинутым аналогом TLS (Transport Layer Security — защита транспортного уровня).
Протокол SSL предложен корпорацией Netscape Communications в 1996 году с целью обеспечения безопасности и секретности интернет-соединений. Протокол поддерживает аутентификацию (установление подлинности) клиента и сервера, не зависит от приложений и прозрачен для протоколов HTTP, FTP и Telnet.
Протокол SSL Handshake состоит из двух этапов: установление подлинности сервера и необязательное установление подлинности клиента. На первом этапе сервер в ответ на запрос клиента посылает свой сертификат и параметры шифрования. Затем клиент генерирует мастер-ключ, зашифровывает его открытым ключом сервера и отсылает серверу. Сервер расшифровывает мастер-ключ своим частным ключом и подтверждает свою подлинность клиенту, возвращая ему сообщение, заверенное мастером-ключом клиента.
Последующие данные шифруются и заверяются ключами, полученными на основе этого мастера-ключа. На втором этапе, который не является обязательным, сервер посылает запрос клиенту, а клиент подтверждает серверу свою подлинность, возвращая запрос с собственной цифровой подписью и сертификат открытого ключа.
SSL поддерживает разнообразные криптографические алгоритмы. В ходе установления связи используется криптосистема открытого ключа RSA. После обмена ключами используется много разных шифров: RC2, RC4, IDEA, DES и TripleDES. Также используется MD5 — алгоритм создания дайджеста сообщений. Синтаксис сертификатов открытого ключа описан в X.509.
Одним из немаловажных преимуществ SSL, является его полная программно-платформенная независимость. Протокол разработан на принципах переносимости, и идеология его построения, не зависит, от тех приложений, в составе которых он используется. Помимо этого, важно и то, что поверх протокола SSL, могут прозрачно накладываться и другие протоколы; либо для еще большего увеличения степени защиты целевых информационных потоков, либо, для адаптации криптографических способностей SSL под какую-нибудь другую, вполне определенную задачу.
SSL-подключение
Предоставляемый SSL безопасный канал обладает тремя основными свойствами:
Особенности FTPS
Существуют две реализации FTPS, использующие различные методы предоставления безопасности:
SFTP (Secure File Transfer Protocol) – протокол прикладного уровня передачи файлов, работающий поверх безопасного канала. Не следует путать с (Simple File Transfer Protocol), имеющим такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ним протокол, который в качестве основы использует SSH (Secure Shell – безопасная оболочка).
Secure Shell
Разработкой протокола занималась одна из групп IETF под названием Secsh. Рабочая документация к новому протоколу SFTP не стала официальным стандартом, однако начала активно применяться для разработки приложений. В дальнейшем было выпущено шесть версий протокола. Однако, постепенное наращивание в нём функциональности привело к тому, что 14 августа 2006 года было принято решение о прекращении работы над развитием протокола в связи с выполнением основной задачи проекта (разработка SSH) и отсутствием достаточного экспертного уровня для перехода к разработке полноценного протокола удалённой файловой системы.
SSH – это сетевой протокол, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X WindowSystem.
Первая версия протокола, SSH-1, была разработана в 1995 году исследователем Тату Улёненом из Технологического университета Хельсинки (Финляндия). SSH-1 был написан для обеспечения большей конфиденциальности, чем протоколы rlogin, telnet и rsh. В 1996 году была разработана более безопасная версия протокола, SSH-2, несовместимая с SSH-1. Протокол приобрел ещё большую популярность, и к 2000 году у него было около двух миллионов пользователей. В настоящее время под термином «SSH» обычно подразумевается именно SSH-2, т.к. первая версия протокола ввиду существенных недостатков сейчас практически не применяется. В 2006 году протокол был утвержден рабочей группой IETF в качестве Интернет-стандарта.
Распространены две реализации SSH: частная коммерческая и бесплатная свободная. Свободная реализация называется OpenSSH. К 2006 году 80 % компьютеров сети Интернет использовало именно OpenSSH. Частная реализация разрабатывается организацией SSH Communications Security, которая является стопроцентным подразделением корпорации Tectia, она бесплатна для некоммерческого использования. Эти реализации содержат практически одинаковый набор команд.
Протокол SSH-2, в отличие от протокола telnet, устойчив к атакам прослушивания трафика («снифинг»), но неустойчив к атакам «человек посередине». Протокол SSH-2 также устойчив к атакам путем присоединения посредине (англ. sessionhijacking), так как невозможно включиться в уже установленную сессию или перехватить её.
Для предотвращения атак «человек посередине» при подключении к хосту, ключ которого ещё не известен клиенту, клиентское ПО показывает пользователю «слепок ключа» (англ. keyfingerprint). Рекомендуется тщательно проверять показываемый клиентским ПО «слепок ключа» со слепком ключа сервера, желательно полученным по надёжным каналам связи или лично.
Поддержка SSH реализована во всех UNIX-подобных системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIX ОС. Большую популярность протокол получил после широкого развития анализаторов трафика и способов нарушения работы локальных сетей, как альтернативное небезопасному протоколу Telnet решение для управления важными узлами.
Связь с использованием SSH
Для работы по SSH нужен SSH-сервер и SSH-клиент. Сервер прослушивает соединения от клиентских машин и при установлении связи производит аутентификацию, после чего начинает обслуживание клиента. Клиент используется для входа на удалённую машину и выполнения команд.
Сравнение с FTPS
Главное, что отличает SFTP от стандартного FTP и FTPS, это то, что SFTP шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию.
Оба протокола FTPS и SFTP используют сочетание асимметричных алгоритмов (RSA, DSA), симметричных алгоритмов (DES/3DES, AES, Twhofish т.д.), а также алгоритм обмена ключами. Для аутентификации FTPS (или, если быть более точным, SSL / TLS по протоколу FTP) использует сертификаты X.509, в то время как SFTP (SSH протокол) использует SSH ключи.
Сертификаты X.509 включает в себя открытый ключ и некоторую информацию о сертификате владельца. Эта информация позволяет, с другой стороны, проверить целостность самого сертификата, подлинность и владельца свидетельства. Сертификатов X.509 имеет соответствующий закрытый ключ, который обычно хранится отдельно от сертификата по соображениям безопасности.
SSH ключ содержит только открытый ключ (соответствующий закрытый ключ хранится отдельно). В нем не содержится никакой информации о владельце ключа. Некоторые SSH реализации используют сертификаты X.509 для аутентификации, но на самом деле они не проверяют всю цепочку сертификатов — только открытый ключ используется (что делает такую проверку подлинности неполной).
Заключение
Протокол FTP, несомненно, до сих пор играет важную роль в вопросе хранения и распространения информации в сети несмотря на свой почтенный возраст. Это удобный, многофункциональный и стандартизированный протокол. На его базе построено множество файловых архивов, без которых техническая работа была бы не столь эффективна. Кроме того, он лёгок в настройке, а программы-серверы и клиенты существуют практически для всех актуальных и не очень платформ.
В свою очередь его защищённые версии решают проблему конфиденциальности хранимых и передаваемых данных в современном мире. Оба новых протокола имеют свои плюсы и минусы и выполняют немного разные роли. В тех областях, где необходим именно файловый архив предпочтительнее использовать FTPS, особенно если раньше там уже использовался классический FTP. SFTP менее распространён в силу своей несовместимости со старым протоколом, но более защищён и имеет больший функционал, так как является частью системы удалённого управления.
Данная статья призвана подробно рассказать об этих трех технологиях, а читатель решит для себя, какой именно способ подойдет ему для загрузки файлов на хостинг.
FTP и SFTP
Для анализа мы возьмем идеальный вариант, когда файлы для загрузки расположены на локальном жестком диске, в одной из папок. Закачка файлов по протоколу FTP (File Transfer Protocol) не отличается от его собрата SFTP (Secured File Transfer Protocol), который является более усовершенствованной (читайте, защищенной и от того более медленной) версией первого. Для закачки по одному из этих протоколов хорошо подходит всем известный файл-менеджер Total Commander. Cкачать его в Интернете очень просто, поэтому здесь не будем заострять внимание читателя.
Нужно открыть папку файлов для загрузки через менеджер, выделить их одним из удобных способов (Ctrl+A, «звездочка» на цифровой клавиатуре и т.д.), упаковать в один архив комбинацией клавиш Alt+F5, после чего выбрать один из типов будущего архива (ZIP или TGZ). Если все процедуры выполнялись в левом окне, то, по умолчанию, новый архив окажется в правом окошке (и наоборот).
После этих процедур нужно связаться с FTP (SFTP) сервером хостинга. Для этого нужно знать данные из письма, которое приходит от хостера после активации учетной записи пользователя. Вам нужно знать:
Настройка FTP-соединения в файловом менеджере выполняется после нажатия комбинации Ctrl + F, а затем кнопки «Добавить». После этого следует приступить к заполнению формы подключения:
Нажатием клавиши OK сохраняем внесенные настройки.
В появившемся окошке соединения с FTP-сервером выбираем новое ранее созданное соединение и кнопку «Соединиться». Мы оказываемся на сервере хостера, где корневой каталог сайта будет размещен в « /www/имя _домена/». Далее нужно зайти в эту папку и из другого окна Total Commander скопировать архив кнопкой F5. Почему нужно упаковать файлы в архив? Так он будет быстрее записан на сервер, а при SFTP-соединении такая процедура будет проходить еще медленнее из-за повышенной степени защиты.
Использование Total Commander не является панацеей от всех бед, однако помогает значительно упростить процедуру закачки файлов на хостинг.
После копирования файлов на сервер следует через панель администрирования сайта открыть менеджер файлов, где будет отображаться новый архив, из которого можно свободно извлекать файлы.
А что же с SSH? Говоря простыми словами, если предыдущие протоколы изначально разрабатывались для простой передачи файлов, что здесь можно говорить об изначальном создании защищенного протокола, создающего туннель между пользователем и сервером в любой среде передачи. О большой функциональности такого протокола говорить не стоит, однако если вы хотите получить самую высокую степень защиты, то этот протокол подойдет оптимально. Некоторые хостеры предоставляют доступ по такому протоколу за отдельную плату, поскольку кроме всего прочего протокол позволяет удаленно запускать любые программы на сервере. В этом его главное преимущество.
Процедура подключения похожа с предыдущим случаем, но с некоторыми отличиями: здесь нужно указывать порт и особые логин с паролем для доступа на сервер,а также потребуется свободно распространяемая и бесплатная программа PuTTY или WinSCP.