Слово "протокол" можно трактовать как "свод правил". В сети компьютеры и установленное на них программное обеспечение отправляют и получают данные. При этом, чтобы "общение" состоялось, данные должны быть представлены в определенных форме, понимать которую согласны оба "собеседника".

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

У каждого уровня сетевой модели ISO имеется несколько различных протоколов. Так на сетевом уровне данные представлены пакетами, а распространенными протоколами их передачи являются IPv4 и IPv6. Если сервер передает данные по IPv4, клиент должен быть способен получать их по этому протоколу.

Для последнего, уровня приложений, существует множество протоколов. Одним из них является SSH, что есть аббревиатура от secure shell – защищенная оболочка. Данный протокол шифрует передаваемые данные, поэтому часто используется для удаленного администрирования операционных систем серверов.

Существуют коммерческая и свободная версии протокола SSH. Свободная называется OpenSSH и используется чаще. Поэтому, говоря о SSH, обычно подразумевают OpenSSH.

Передача данных по протоколу SSH требует наличия двух программ: ssh-сервера на стороне сервера и ssh-клиента на стороне клиента. Клиент передает зашифрованные запросы на сервер. Сервер их расшифровывает и передает данные в зашифрованном виде, которые уже клиент расшифровывает на своей стороне.

В Unix-подобных операционных системах ssh-клиент является стандартной утилитой и обычно устанавливается вместе с ОС. Ssh-сервер нередко требует отдельной установки и настройки. Однако при использовании VPS эту задачу решает хостинговая компания, так как заказчик не может получить доступ к своей ОС, пока ssh-сервер не будет настроен.

В операционных системах семейства Windows используют одна из множества программ ssh-клиентов. Популярным является PuTTy. Как с его помощью подключиться к серверу, можно почитать на сайте Beget.

Доступ по протоколу SSH предоставляется не только в случае заказа сервера. Данная услуга бывает и на виртуальном хостинге. Однако здесь доступ будет только к вашему домашнему каталогу. В случае VPS предоставляется рутовый доступ к вашей виртуальной операционной системе на сервере. Вы работаете на удаленной машине также, как на если бы работали на своей локальной.

Аутентификация – это проверка подлинности, в данном случае проверка наличия прав доступа к серверу. Поскольку ssh – защищенный протокол, при подключении необходимо проходить аутентификацию. Часто ее выполняют либо по паролю, либо с помощью так называемых открытого и закрытого ключей. Первый способ проще, второй считается более надежным и не требует ввода пароля при подключении исключительно с вашего локального компьютера (однако если была установлена кодовая фраза, ее потребуется вводить).

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

Рассмотрим аутентификацию по паролю через локальную linux-машину. В "Терминале" командой ssh вызывается утилита ssh-клиента. В качестве аргумента ей передается имя пользователя, через собаку IP-адрес сервера. При подключении будет запрошен пароль пользователя. В случае успешной аутентификации приглашение командной оболочки изменяется на удаленный хост:

Вход по паролю на сервер по протоколу SSH

Исходно на VPS нет других пользователей, кроме root. Его пароль, а также IP сервера должны быть доступны в "личном кабинете" хостинговой компании или высылаться в письме. Например, у хостера FORNEX это выглядит так:

IP сервера и пароль root-пользователя

С помощью команды exit можно закончить сеанс связи с удаленным компьютером:

Отключение от сервера путем выхода из командной оболочки

Для настройки аутентификации с помощью ключей необходимо сгенерировать секретный и открытый ключи на локальном компьютере, перенести открытый ключ на сервер, иногда изменить ряд конфигурационных настроек ssh-сервера. Обычно хостинговые компании подробно описывают данный процесс для своих серверов (настройка авторизации по ключу у FORNEX и Beget).

После настройки входа по ключевой паре, в настройках ssh-сервера полезно отключать аутентификацию по паролю.

При создании нового пользователя для него создается своя ключевая пара.

Вопросы для самопроверки:

  1. Что такое SSH и для чего он используется?
  2. Что такое аутентификация и какие методы аутентификации обычно используются в SSH?
  3. Как можно подключиться к серверу через локальную linux-машину с использованием SSH?
  4. Как завершается сеанс связи с удаленным компьютером?
  5. Что нужно сделать для настройки аутентификации по ключам на SSH-сервере?