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

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

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

Во всех операционных системах имеются специальные утилиты для подключения. Например, для Windows часто используют программу от Microsoft под названием OpenSSH (доступно для скачивания на официальном сайте разработчика). Компьютер пользования при соединении называют клиентом, а сервер, к которому он подключается, именуют хостом.

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

Технические детали:

  1. По умолчанию используется порт 22, допускается устанавливать любой другой.
  2. Шифрование работает при помощи специальных криптографических ключей.
  3. Протокол SSH поддерживает три различных метода кодирования данных.

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

Второй способ – ассиметричное шифрование. Режим включается при использовании пары ключей «приватный + публичный». Система подразумевает, как и в первом случае, инициализацию защиты при соединении. На базе публичного ключа хост и клиент генерируют приватные модули, которые впоследствии будут использоваться для дешифрации данных в пределах одной сессии.

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

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

По умолчанию протокол подключения активен на виртуальных машинах VDS и VPS с любой операционной системой (Linux или Windows). Провайдеры хостинга включают его редко, поэтому стоит уточнять этот момент отдельно.

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

Если на сервер установлена панель управления вроде Plesk или ISPmanager, то включается поддержка протокола через нее. В остальных случаях понадобится немного погрузиться в техническую часть. Так, на платформе Linux приложение для подключения по SSH обычно предустановлено. В Ubuntu окно терминала открывается комбинацией клавиш <Ctrl+Alt+T>.

Данные, требуемые для подключения:

  1. IP-адрес сервера, куда предстоит подключаться.
  2. Номер порта, если в целях безопасности он был изменен.
  3. Имя и пароль пользователя на удаленном сервере.

Перечисленные данные вносятся в настройки утилиты SSH или в командную строку. В последнем случае синтаксис команды подключения выглядит следующим образом:

$ ssh имя_пользователя@IP_адрес -p номер_порта

При верном указании учетной информации система запросит ввод пароля. Если подключение SSH осуществляется впервые, то система предложит добавить устройство в список известных устройств (достаточно ответить на запрос нажатием кнопки «Y»). После этого можно вводить управляющие команды, а терминал будет передавать их напрямую в систему хоста.

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

На платформе Windows предварительно понадобится инсталлировать специальное программное обеспечение вроде PuTTY. Оно легко настраивается и занимает минимум места на накопителе. При первом запуске достаточно внести номер порта и IP-адрес и нажать кнопку «Open», чтобы перейти в консоль для ввода имени пользователя и пароля.

В остальном управление терминалом в Linux и Windows одинаково, ведь речь идет о командах для одного и того же сервера. При неверно внесенном IP-адресе или номере порта система выдает ошибку подключения. В этом случае достаточно перенастроить программу или скорректировать команду для консоли. Правильные данные нужно предварительно получить у администратора сервера.

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

Если подключаться по SSH к одному хосту с единого клиента приходится часто, будет рационально перейти на использование пары ключей «приватный + публичный». В Linux это выполняется при помощи команды:

$ ssh-keygen

Система запросит путь, куда пользователь хочет сохранить генерируемые ключи:

Generating public/private rsa key pair.

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

После нажатия клавиши «Enter» запрашивается пароль для ключа: этот шаг нужно пропустить, чтобы исключить запрос при каждом соединении с использованием ключа. Однако иногда компании активируют такую двухфакторную аутентификацию, которая дает защиту от несанкционированного доступа с клиента на рабочем месте, где сложно ограничить количество использующих компьютер сотрудников.

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

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

В завершении генерации останется последовательно нажать кнопки «Открытый ключ» и «Закрытый ключ» и указать подходящий путь для их сохранения. Перед закрытием утилиты нужно скопировать текстовый дамп, размещенный сверху в том же окне, и вставить его в файл authorized_keys папки .ssh домашнего каталога (на хосте).

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

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

На стороне хоста за работу SSH-сервера отвечает программа из стандартного дистрибутива – sshd. Конфигурационные файлы располагаются по пути /etc/ssh (основной из них sshd_config). Перед первым подключением рекомендуется отключить пользователя root от возможности использовать SSH-протокол – это делается для повышения общего уровня безопасности.

Выполнить отключение можно изменением sshd_config. В строчке #PermintRootLogin» требуется заменить слово «Yes» на «No». Затем перезапустить сервер командой service sshd restart и пользоваться системой как обычно. Никаких особых настроек утилита не требует и позволяет подключаться сразу после установки операционной системы на хост.

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

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

Также стоит сразу заменить стандартный порт 22 на любой другой. Он будет однажды прописан в утилите на клиенте и никогда не «всплывет» в какой-либо переписке. Администратору останется лишь периодически проверять log-файлы сервера, чтобы убедиться в отсутствии подключений с неизвестных IP-адресов.

Hosting2go.ru