Мы используем cookie, чтобы сайт был лучше для вас.
Внимание
У Вас отключена поддержка Cookie в браузере. Возможно некорректное отображение сайта!

Что такое SSH

SSH — один из способов дистанционного управления сервером на хостинге. Рассказываем, что это за протокол и как его использовать.

Что такое SSH

SSH — это сетевой защищённый протокол передачи данных для дистанционного управления устройствами.

Он позволяет передавать различные команды другому компьютеру или серверу: например, загружать или удалять файлы, запускать приложения и так далее.

При этом все данные, которые передаются от вас к удалённому устройству, надёжно зашифрованы. SSH создаёт защищённое соединение и не позволит злоумышленникам украсть ценную информацию.

Функции протокола

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

При помощи SSH можно:

  • запускать приложения, удалять, перемещать папки и файлы, выполнять другие команды на удалённом устройстве;
  • передавать данные по безопасному каналу;
  • сжимать файлы для их быстрой доставки;
  • перенаправлять порты и передавать зашифрованный трафик между портами разных компьютеров.

SSH-сервер и SSH-клиент

Чтобы подключение к удалённому устройству успешно состоялось, нужны две программы: SSH-сервер и SSH-клиент.

SSH-сервер устанавливается на устройстве, к которому будет произведено подключение. Если речь идёт об удалённом управлении хостингом, какой SSH-сервер будет применяться, решает провайдер. Обычно это бесплатная программа — OpenSSH.

SSH-клиент — это программа на компьютере пользователя, которая осуществляет подключение и передаёт информацию. В Linux и macOS используется OpenSSH, и обычно она уже встроена. Подключиться и управлять удалённым устройством можно через терминал.

На Windows клиент не установлен по умолчанию, и нужно скачивать стороннее приложение.

Несколько распространённых SSH-клиентов для этой ОС:

  • PuTTY;
  • SecureCRT;
  • ShellGuard;
  • Axessh;
  • ProSSHD.

Чаще всего используют PuTTY — он бесплатный и достаточно простой в управлении. Именно его мы советуем установить и будем приводить в примерах в этой статье.

Как работает протокол

Перед началом передачи информации между получателем и отправителем должно установиться безопасное соединение. Это происходит в три шага:

1. Установка TCP-соединения. TCP — это протокол передачи данных. Он относится к транспортному уровню модели OSI. С его помощью информация с одного устройства доставляется на другое. При этом он обеспечивает безопасную транспортировку пакетов и гарантирует их целостность.

Перед началом передачи данных должно быть установлено безопасное соединение. Происходит это следующим образом:

  1. Клиент посылает запрос на установку соединения — сообщение SYN и порядковый номер переданного байта.
  2. Сервер в ответ тоже посылает сообщение SYN, подтверждает получение данных сообщением ACK и отправляет номер байта, который должен быть получен следующим.
  3. Клиент, в свою очередь, тоже подтверждает, что получил информацию, и посылает номер следующего ожидаемого байта.
  4. В итоге соединение считается установленным.

Что такое SSH

2. Открытие защищённого канала. Получатель и отправитель должны договориться, как они будут шифровать и сжимать данные.

  1. Сначала они сообщают друг другу версии SSH и другую дополнительную информацию. Это помогает установить, совместимы ли протоколы, и определиться с дальнейшими шагами.
  2. Затем стороны сообщают друг другу, какие алгоритмы они поддерживают. Одни из этих алгоритмов будут применяться для шифрования информации, другие — для её сжатия, а третьи — для отправки ключей. Технологии располагаются в порядке от самого предпочтительного до наименее предпочтительного. Обе стороны сравнивают полученные данные с теми алгоритмами, которые они поддерживают, и выбирают первые совпавшие варианты.
  3. В конце сервер создаёт и отправляет клиенту уникальную комбинацию символов — fingerprint. Если связь с этим сервером уже устанавливалась раньше, клиенту уже известен этот fingerprint. Информация о нём хранится в /home/username/.ssh/known_hosts. А если соединение устанавливается впервые, клиент «спросит» у вас, можем ли мы доверять этому серверу. После вашего подтверждения будет сгенерирован сессионный ключ для симметричного шифрования канала.

Что такое SSH

3. Аутентификация пользователя. После того как был открыт защищённый канал, сервер должен проверить, кто к нему подключился и имеет ли он на это право.

Идентифицировать юзера можно двумя способами:

  1. По паролю.
  2. По SSH-ключу.

SSH создал защищённое соединение. Теперь клиент может передавать данные.

Мы разобрались, что такое SSH и как он работает. Давайте теперь посмотрим, как пользоваться им на практике.

Как подключиться к серверу с помощью протокола

Чтобы подключиться к серверу, вам понадобятся определённые данные:

  • IP-адрес машины;
  • логин;
  • пароль.

На нашем хостинге эта информация есть в личном кабинете, в разделе «Инструкция» к каждому серверу.

Все необходимые данные вы найдёте в первом разделе — «Информация о сервере»:

Что такое SSH

Если на вашем компьютере стоит Linux или macOS, зайдите в терминал.

В появившемся окне наберите:

ssh username@185.211.200.111

Вместо username должен быть указан ваш логин, а вместо 185.211.200.111 — IP-адрес сервера, к которому вы подключаетесь.

Нажмите Enter.

Если ОС на вашем устройстве — Windows, вам потребуется установить клиент. В наших примерах мы будем использовать PuTTY.

Запустите программу, нажмите на Session и введите IP удалённого устройства в поле Host Name (or IP address):

Что такое SSH

Нажмите Open.

После подключения откроется окно консоли.

Если клиент подключается к серверу первый раз, как мы уже говорили выше, он отправит вам fingerprint:

The authenticity of host ’185.211.200.111 (185.211.200.111)’ can’t be established. ECDSA key fingerprint is ed:fe:f5:d7:98:fe:85:64:e1:44:11:af:e7:8d:33:de. Are you sure you want to continue connecting (yes/no)?

Введите yes.

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

Доступ по ключу

SSH-ключ — хороший способ не вводить пароль постоянно, когда вы подключаетесь.

Вам понадобится два ключа: публичный и приватный. Приватный ключ — закрытый, его нельзя сообщать никому ни при каких обстоятельствах. Публичный же можно передать тому, с кем вы будете обмениваться зашифрованными данными.

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

Что такое SSH

Создание ключей на Linux или macOS

1. В терминале введите:

ssh-keygen -t rsa

2. Дальше нужно будет указать место, куда сохранить ключи:

Enter file in which to save the key (/home/user/.ssh/id_rsa):

Укажите путь к папке. Или нажмите Enter — тогда это будет место по умолчанию /.ssh/id_rsa.

3. Следующее сообщение на экране предложит вам создать специальную фразу для дополнительной безопасности:

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Если у вас нет желания вводить её при подключении постоянно, просто нажмите Enter.

4. Ключи готовы:

Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: ed:fe:f5:d7:98:fe:85:64:e1:44:11:af:e7:8d:33:de user@localhost The key's randomart image is: +---[RSA 2048]----+ |                 | |                 | |    ..  * O o B .| |    . .  + + * S | |     == B o + . .| |    .. B . = . . | |   .. B  o = + ..| | .  E.o * . o   .| |   oooS    +.    | +----[SHA256]-----+

Приватный ключ находится в ~/.ssh/id_rsa, публичный — в ~/.ssh/id_rsa.pub. Именно там они будут сохранены, если вы ничего не укажете на втором шаге. Если же вы выбрали другой путь, в сообщении будут указаны другие данные.

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

Генерация ключей на Windows

Вам понадобится приложение PuTTYgen.

1. Запустите его. Выберите тип ключа — RSA. И проверьте, чтобы его длина была 2048 бит.

Что такое SSH

2. Кликните на Generate и хаотично подвигайте мышкой. Программа использует движение курсора для создания случайных данных.

Что такое SSH

В верхней части окна появится публичный ключ.

Что такое SSH

Лучше сразу копируйте его, чтобы потом загрузить на сервер.

3. Сохранить ключи можно в любой папке на устройстве, нажав на Save public key и Save private key.

Что такое SSH

Как загрузить ключ на сервер EdgeЦентр

Читайте инструкции в нашей базе знаний:

Основные команды протокола

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

Таких команд существует очень много. Все они одинаково работают при использовании любого SSH-клиента.

Мы перечислим несколько основных.

1. ls — выводит название всех файлов и папок на удалённом устройстве. Её используют вместе с набором команд:

  • ls -la — отображает все файлы и информацию о них: права доступа, имя владельца и создателя.
  • ls -lha — показывает размер каждого файла в байтах.
  • ls -lha | less — постраничный просмотр документов и папок.

2. cd — перемещение между директориями. Введите команду, укажите путь к папке, и вы окажетесь в этой папке.

3. sudo — позволяет выполнять любые команды от имени администратора.

4. mv — переименовывает файлы или перемещает их в директории. Допустим, мы ввели mv name1 name2. Если name2 — это существующая директория, то файл name1 переместится туда. Если директории name2 не существует, name1 будет переименован в name2.

5. rm — команда для удаления документов и директорий. Введите после неё имя файла или папки, и этот файл или папка будут удалены.

6. cp — используется, когда нужно копировать файл или папку. Если вы введёте cp 1file 2file, то 1file будет скопирован в 2file. Если нужно скопировать одну директорию в другую, после cp наберите -r. Выглядеть это будет так:

cp -r 1dir 2dir

При этом если директории 2dir не существует, она будет создана.

7. chmod — изменение прав доступа к файлу. Сначала указывается команда, затем права доступа и пользователь, которому эти права даются или отнимаются, и в конце путь к файлу.

Права бывают трёх видов:

  • r — чтение;
  • w — запись;
  • x — выполнение.

И три вида пользователей:

  • u — владелец файла;
  • g — группа файла;
  • о — все остальные пользователи.

Разрешение обозначается знаком +, запрет — знаком -.

Например, мы указываем:

chmod о+r filename

Это значит, что мы разрешили чтение файла filename всем, кроме его владельца и группы.

8. scp — передача файлов с вашего устройства на сервер. После команды вы указываете имя локального файла (или путь к папке), имя пользователя, IP-адрес сервера и адрес папки, где нужно разместить файл.

Выглядеть это будет так:

scp example.txt username@111.222.333.444:/path/to/new/location/

Это лишь малая часть базовых команд SSH. Их хватит для общего понимания работы с протоколом. Но, конечно, для полноценного применения SSH на практике этого списка будет недостаточно.

Подведём итоги

  1. SSH — это защищённый протокол передачи данных для удалённого управления компьютерами через интернет.
  2. Через SSH можно выполнять различные команды на удалённом устройстве, безопасно передавать данные, сжимать их для быстрой передачи и так далее.
  3. Чтобы использовать протокол, нужны специальные приложения: SSH-сервер и SSH-клиент.
  4. Когда вы подключаетесь к серверу, SSH сначала устанавливает безопасное соединение. Он открывает защищённый канал и идентифицирует юзера.
  5. Если у вас нет желания вводить пароль постоянно, когда вы подключаетесь, можно создать SSH-ключ и загрузить его на сервер.
  6. Когда связь между вашим устройством и удалённой машиной установлена, вы можете вводить в консоли разные команды и с их помощью управлять сервером.
  7. Серверами на хостинге EdgeЦентр можно управлять с помощью SSH.

Разместите ваши проекты на наших виртуальных и выделенных серверах и управляйте ими из любой точки мира.

Подпишитесь на полезную рассылку

Выгодные предложения и важные новости раз в месяц. Без спама

Нажимая кнопку «Подписаться», я даю согласие на получение рекламно-информационной рассылки согласно Политике