SSH

Редактор: Марина Долгова 23738 10 мин Аудио

SSH (в переводе с английского Secure Shell - безопасная оболочка) - это защищенный протокол удаленного соединения между компьютером-клиентом (домашним компьютером) и компьютером-сервером, позволяющий удаленное управление и передачу данных между ними.

SSH-доступ используется для управления VPS/VDS и выделенных серверов, а также активно применяется  в хостинге. Мы рекомендуем SSH только пользователям с навыками системного администратора. 

Вы можете набирать команды на своем компьютере, но при этом они передаются и выполняются на сервере - в этом заключается принцип работы протокола SSH.

Как работает SSH

В основе протокола SSH лежит криптография - шифрование канала связи. 

Компьютер, с которого устанавливается SSH-соединение, называется клиентом, а удаленный SSH-сервер, к которому осуществляется подключение, - хостом.

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

SSH-сервер передает данные входящих соединений на 22-ом TCP-порте сервера хоста, но администратор сервера может назначить любой порт, исходя из соображений безопасности.

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

В протоколе SSH используются три различных метода шифрования:

  • симметричное;
  • ассиметричное;
  • хэширование.

Симметричное шифрование

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

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

Асимметричное шифрование

Если вы используете для авторизации вместо пароля пару приватный+публичный ключ, то SSH применяет ассиметричное шифрование на этапе установки соединения. О том, как сгенерировать пару “приватный+публичный ключ”, читайте ниже. 

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

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

Алгоритм подключения с асимметричными ключами работает так:

1. Хост и клиент используют свои публичные ключи для генерации общего секретного ключа шифрования сессии. 
2. Затем хост шифрует данные публичным ключом и предлагает клиенту расшифровать их своим приватным ключом. 
3. Если операция успешна, то клиент авторизуется на хосте с соответствующим именем пользователя. 
4. Затем сессия продолжается уже с использованием симметричного шифрования.

Хэширование

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

Подключение по паролю на виртуальном хостинге

На виртуальном хостинге SSH используется реже, чем на  VPS/VDS и выделенных серверах. Его применяют лишь некоторые провайдеры, например, Beget

SSH-доступ в панели управления Beget

Чтобы работать с сервером при помощи командной строки Linux, пользователю нужно:
1. Включить опцию “SSH-доступ”.
2. Подключиться к своему серверу при помощи SSH-клиента, используя логин и пароль от личного кабинета.

На платформе Linux

SSH-Linux-клиент предустановлен на всех версиях операционной системы Linux. Также SSH-доступ заранее настроен на серверах под управлением Linux.

1. Пользователю Linux для применения SSH достаточно запустить терминал (так называется командная строка в Linux) и набрать команду:

ssh user@host

  • user - это имя пользователя на удаленном сервере;
  • host -  адрес самого сервера. 

2. Система предложит вам ввести пароль.
3. Произойдет соединение с удаленным компьютером-сервером, и вы сможете начать полноценную работу на нем.

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

Пример: 
1. Пользователь вводит в терминале команду соединиться с сервером под логином admin. 
2. После ввода пароля пользователь авторизуется на удаленном сервере. 
3. На этапе, обозначенном цифрой “1”, пользователь работает на своем локальном Linux-компьютере.
4.  На этапе, обозначенном цифрой “2”, - на удаленном сервере.

На платформе Windows

На платформе Windows для использования протокола SSH разработано специальное программное обеспечение: SSH-клиенты.

Наиболее популярным является SSH Windows-клиент PuTTY, поддерживающий все современные стандарты шифрования для SSH.

1. Скачайте PuTTY с официального сайта на локальный компьютер, чтобы начать работу.
2. При запуске SSH-клиент PuTTY предложит ввести IP-адрес хоста для подключения. Например, 95.179.134.210.

3. Затем откроется окно терминала и приглашение для ввода имени пользователя и пароля, после чего вы соединитесь с удаленным сервером. 

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

Подключение по ключам

Для Linux

Чтобы подключиться по SSH без пароля, необходимо создать пару приватный+публичный ключ и сохранить публичный ключ на хостинге.

1. В терминале выполните команду:

ssh-keygen

2. Программа спросит, куда нужно сохранить ключи.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):

3. Чтобы сохранить ключи в домашнюю директорию .ssh/id_rsa, нажмите Enter.
4. Программа запросит пароль для ключа - passphrase. Нажмите Enter, чтобы пропустить этот шаг. Иначе пароль нужно будет вводить при каждом соединении с использованием ключа.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

5. Приватный и публичный ключи созданы.

~/.ssh/id_rsa - приватный ключ.
~/.ssh/id_rsa.pub - публичный ключ.

6. Чтобы загрузить публичный ключ на сервер в файл ~/.ssh/authorized_keys, запустите на локальном компьютере команду:

ssh-copy-id -i /home/demo/.ssh/id_rsa.pub admin@95.179.134.210

Для Windows

SSH-Windows-клиент PuTTY умеет генерировать приватный и публичный ключи пользователя для их применения при подключении по SSH.

Для этого используется поставляемая в комплекте утилита puttygen.exe.

1. При запуске утилиты нажмите кнопку “Генерировать”.
2. Программа предложит вам подвигать мышью для создания случайной последовательности данных, затем генерируются ключи.
3.  После создания ключи нужно сохранить на компьютер в виде текстовых файлов (Пункт “Сохранить сгенерированные ключи”, кнопки “Открытый ключ” и “Личный ключ” соответственно для публичного и приватного ключей).

4. Наверху справа в поле “Ключ” будет виден текстовый дамп публичного ключа для сохранения на удаленном сервере (хосте). 
5. Для этого на сервере в домашнем каталоге создайте папку “.ssh”, а внутри нее - файл “autorized_keys”. 
6. Отредактируйте этот файл любым текстовым редактором (например, mcedit) и сохраните туда дамп ключа с экрана утилиты puttygen.exe.

7. После этого в самой программе PuTTY укажите имя пользователя для автовхода:

8. Подключите в файл SSH приватный ключ, предварительно сохраненный в утилите puttygen.exe:

9. После выполнения этих операций соединение с удаленным сервером по протоколу SSH произойдет без ввода пароля за счет пары публичный + приватный ключ:

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

Настройка SSH на сервере

На Linux-сервере за работу протокола SSH отвечает программа sshd из набора программного обеспечения openssh.

Конфигурационные файлы находятся в каталоге /etc/ssh.

Основной файл конфигурации - ssh_config

Для управления настройками сервера SSH нужны привилегии суперпользователя root.

Сами настройки sshd не требуют изменений. 

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

Для этого нужно:

  • найти в файле конфигурации sshd_config строчку “#PermitRootLogin yes”;
  • заменить ее на “PermitRootLogin no”;
  • перезапустить сервер SSH командой “service sshd restart”.

Применение протокола SSH для копирования файлов

SSH - это целое семейство протоколов, применяемых не только для администрирования серверов, но и, например, для удобного копирования файлов между двумя подключенными к сети компьютерами. 

Для Linux-платформы при копировании файлов через SSH используется утилита SCP (secure copy).

Например, чтобы скопировать файл “data” с локальной машины на удаленный сервер, применяется команда вида “scp data admin@95.179.134.210:data”

Утилита scp запросит пароль пользователя и затем выполнит копирование:

Для Windows платформы используется протокол SFTP (Secure FTP), разработанный как замена обычного FTP

Поддержка SFTP есть в популярном клиенте Filezilla. Для соединения необходимо знать имя пользователя и его пароль на удаленном сервере.

1. Чтобы указать использование протокола SFTP, в Filezilla перед адресом удаленного сервера в соответствующем поле добавьте префикс “sftp://”:

2. После установки соединения по протоколу SFTP работа с файлами и каталогами на удаленном сервере в Filezilla происходит точно так же, как при использовании обычного FTP.

Если вы авторизовались при помощи SSH-ключа, то в случае с Linux ввод пароля не требуется, а в случае с Windows - ввод пароля также не нужен, но необходим путь к файлу с SSH-ключом.

Безопасность

Для повышения безопасности администратору сервера следует воспользоваться некоторым советами:

  • Используйте пару приватный + публичный ключ вместо пароля. Таким образом, пароль, который можно украсть, нигде применяться не будет, а соединение может быть установлено только с конкретного компьютера-клиента.
  • Применяйте только надежные длинные пароли, которые невозможно подобрать по словарю.
  • Запретите соединение на сервере для пользователя root.
  • Поменяйте SSH-порт на сервере с 22 на какое-то другое значение.
  • Регулярно проверяйте в Log-файлах сервера, откуда (с каких IP-адресов) были установлены соединения по SSH.
Марина Долгова

Провайдеры с виртуальным выделенным сервером (VPS)

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
40402
4.8 80

Провайдеры предлагающие Linux-хостинг

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
200000
4.9 159

Провайдеры предлагающие Windows-хостинг

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
21000
4.8 230
3
101025
4.8 35
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Вид хостинга

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

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

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

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

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

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

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Тип диска