
SSH протокол: что это такое и как использовать на Windows и Linux
Статья
Время чтения
10 минут
SSH (Secure Shell) — это стандартный протокол для безопасного удаленного управления серверами Linux и Windows. В этой статье вы узнаете, как установить SSH-клиент, подключиться с его помощью к серверу, настроить аутентификацию по ключам и решить частые ошибки. Как водится — все со скриншотами и готовыми командами.
Что такое протокол SSH
SSH (Secure Shell) — это протокол для безопасного удаленного подключения к другому компьютеру через интернет. То есть без него у нас бы не было возможности удаленно подключаться к любым устройствам и настраивать софт. А главное — делать это безопасно и без утечки информации.
Устроено подключение по SSH так:
При подключении используются два ключа — открытый (публичный) и закрытый (приватный).
Публичный ключ хранится на сервере и шифрует данные.
Приватный ключ остается у вас — только с его помощью можно расшифровать информацию.
Благодаря этому даже при подключении через публичные сети,например, в кафе или аэропорту, ваши данные остаются защищенными.
Чтобы на практике показать, как работает SSH-протокол, можно провести аналогию с депозитными ячейками в банке: ячейка — это сервер, а ее содержимое — информация, которую вы храните или хотите передать. Для работы с ячейкой нужны два ключа — один у сотрудника банка, один ваш. То есть даже если кто-то завладеет банковским ключом, без вашего он бесполезен. А если на ваш ключ установлен пароль, то даже в случае его похищения, злоумышленник не сможет вскрыть ячейку.
Кстати, для удобного управления публичными SSH-ключами в Cloud.ru Evolution есть отдельный сервис, которым может воспользоваться любой владелец виртуальной машины в облаке.

Как и зачем разработали SSH
Первую версию SSH в 1995 году разработал финский ученый Тату Юлонен — сразу после того, как сеть Хельсинкского университета подверглась крупной атаке. До этого для доступа к серверам использовали протокол Telnet. Он передавал действия, события (логи) пользователя и пароль через публичную сеть в открытом виде. Однако с появлением SSH удаленный доступ стал куда безопаснее, а интерес потребителей к новому сетевому протоколу возрос. С ним администраторы и разработчики смогли безопасно управлять серверами и передавать данные.
Вот какие преимущества выгодно выделяли SSH на фоне более «древних» аналогов:

Впрочем, уже в 1999 году первоначальный код SSH перестал работать, и появились две альтернативы: коммерческий продукт SSH-2 и бесплатный OpenSSH, который и сейчас используется в большинстве операционных систем.
Сегодня SSH применяется для:
управления облачными серверами;
безопасной передачи файлов;
работы с git-репозиториями;
автоматизации задач через скрипты.
Зачем это нужно? Представьте, что центральный офис вашей компании находится в Казани. А у филиала в Нижнем Новгороде сломался сайт. Через SSH-протокол технический специалист из Казани может:
Мгновенно подключиться к серверу в Нижнем Новгороде, даже если сервер находится в закрытой локальной сети филиала.
Найти и исправить проблему — проверить логи ошибок, перезапустить веб-сервер или обновить конфигурацию, используя команды.
Экстренно обновить файлы сайта, если требуется срочное исправление.
Настроить автоматическое резервное копирование, чтобы избежать проблем в будущем.
Запретить доступ злоумышленникам, если проблема была вызвана атакой.
Все это можно сделать за 10-15 минут без необходимости отправлять специалиста в командировку или просить сотрудников филиала выполнять сложные инструкции по телефону.

Функциональные возможности SSH-протокола обширны, но у него есть свои ограничения. Поэтому подробнее поговорим о преимуществах и недостатках, которые стоит учитывать при его использовании:
Плюсы
Защита от подделки IP-адресов и манипулирования данными на маршрутизаторах в сети. SSH защищает от спуфинга и манипуляций с данными, благодаря криптографическим методам: проверке подлинности, шифрованию данных и обеспечению их целостности.
Предотвращение DNS-спуфинга. То есть кибератак такого типа, при которых злоумышленники подменяют адреса веб-сайтов в системе, отвечающей за преобразование доменных имен (например, google.com), в IP-адреса. В результате человек, вводящий веб-адрес, может попасть на поддельный сайт, даже не подозревая об этом, а злоумышленники получат доступ к его личной информации.
Защита от подслушивания и прослушивания передаваемых данных за счет их шифрования и сохранения целостности, благодаря вычислению хэша при их передаче, а также аутентификации пользователей.
Минусы
Несовместимость с некоторыми типами соединений: SSH работает только с одним типом интернет-соединений — TCP. Это значит, что если приложение использует другой тип соединений (UDP), то SSH не сможет его защитить. Например, UDP-соединения используют видеочаты, потоковые сервисы, онлайн-игры.
Риск неправильной настройки. Если SSH настроен неправильно, например, мы используем простые пароли или забываем установить важные обновления, это может дать мошенникам шанс получить доступ к нашим данным.
Сложность установки. Чтобы установить и правильно настроить SSH, нужно обладать определенными техническими знаниями. Без таких знаний можно легко ошибиться, и это сделает защиту менее надежной.
Чтобы полноценно использовать все возможности протокола и избежать проблем с настройкой, давайте подробно рассмотрим механизм его работы и особенности взаимодействия с разными операционными системами (ОС).
Как работает SSH
SSH работает по клиент-серверной модели, обеспечивая защищенный канал между двумя компьютерами через незащищенные сети. Разберем процесс:
Установка соединения (Handshake)
Когда вы вводите команду ssh user@example.com, происходит:
TCP-подключение, гарантирующее доставку всех пакетов данных Клиент устанавливает соединение с сервером через порт 22 (по умолчанию).
Обмен версиями протокола. Клиент и сервер согласовывают версию SSH (рекомендуется SSH-2).

Обмен ключами и шифрование
После установки TCP-соединения:
Сервер отправляет свой публичный ключ. Клиент проверяет его по отпечатку (fingerprint). При первом подключении ключ сохраняется в папке ~/.ssh/known_hosts.
Создание сессионного ключа. Клиент и сервер используют алгоритм Диффи-Хеллмана. Генерируется временный симметричный ключ для текущей сессии.
Симметричный ключ использует один и тот же ключ для шифрования и дешифрования, а асимметричный сразу пару — публичный и приватный.
Аутентификация пользователя
Система предлагает 2 основных способа аутентификации:
По паролю. Пароль передается в зашифрованном виде. Этот способ менее безопасен, но более прост в настройке.
По ключам. Клиент использует приватный ключ (id_rsa). Сервер проверяет соответствие публичному ключу (authorized_keys).
Рабочая сессия
После успешной аутентификации создается зашифрованный канал, все команды и данные передаются через него. При этом можно использовать:
Интерактивную оболочку — для полного доступа к командной строке удаленного сервера. Чаще всего такой доступ необходим для срочного исправления проблем на сервере, обновления ПО на всех корпоративных серверах и проверки логов в режиме реального времени.
Передачу файлов (SCP/SFTP) — для копирования файлов с локального компьютера на сервер или скачивания с сервера. Эта возможность нужна, когда нужно разместить на сайтах какие-нибудь обновления, безопасно передать финансовые отчеты или сделать резервное копирование важных данных.
Проброс портов (tunneling) — для создания безопасного туннеля для доступа к закрытым сервисам. Эту технологию используют для безопасной удаленной работы с внутренними CRM/ERP-системами, доступа к тестовым серверам без их выноса в публичный контур или просто для защиты данных при подключении через общедоступные сети, например, в отеле или кафе.
Базовые команды SSH
Для управления Secure Shell существуют множество команд, рассмотрим самые базовые:

Процессы установки и использования Secure Shell немного отличаются в в разных операционных системах и их версиях. Давайте рассмотрим подробно, как это происходит процесс на наиболее популярных ОС.
SSH в Windows
Если у вас Windows 10 версии 1809 и выше, то OpenSSH уже встроен в систему, дополнительно ничего делать не нужно. Если же версия ОС старше, то потребуется установить OpenSSH-клиент.
Как установить клиентскую часть OpenSSH в Windows
Есть два способа установки клиента: через настройки Windows или через PowerShell.
Установка через Windows
Откройте Настройки → Приложения → Приложения и компоненты. Нажмите Дополнительные компоненты → Добавить компонент. Найдите Клиент OpenSSH и установите его.
Установка через PowerShell
Введите команду Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0. И проверьте, установлена ли программа, введя в командную строку Get-Command ssh.

Подключение к серверу через интерактивные оболочки (CMD и PowerShell)
Для начала интерактивную оболочку в поисковой строке компьютера, который планируете подключить к удаленному серверу CMD или PowerShell. В открывшееся окно скопируйте текст ssh<user>@<ip> и замените IP-адрес и имя пользователя. Нажмите Enter и введите пароль пользователя root.

Здесь мы рассматриваем только подключение к удаленному серверу. Если вас интересуют возможности удаленного управления Windows-серверами через PowerShell с использованием SSH как транспортного протокола, то это тема для отдельной статьи. PowerShell Remoting требует отдельной настройки и рассматривается в продвинутых руководствах.
Как подключиться по SSH с помощью PuTTY
PuTTY — это бесплатная программа с открытым исходным кодом. Она нужна для удобного и быстрого подключения к другим компьютерам по протоколам SSH, Telnet и другим. ПО есть в бесплатном доступе на официальном сайте.
Как подключиться с помощью PuTTY:
Загрузите программу на устройство и перейдите к настройкам. Нам нужны две вкладки: SSH и Session.
Во вкладке SSH проверьте, чтобы галочка стояла возле второй версии SSH. Во вкладке Session введите IP-адрес удаленного ПК. Если будете использовать нестандартный номер порта, также введите его. По умолчанию стоит порт 22.
После выберите тип соединения, а чтобы быстрее заходить в SSH и подключаться к удаленному ПК создайте пресет. Выберите нужные параметры закрытия окна при выходе.
Нажмите Open и в открытом окне введите логин и пароль для подключения к серверу. Готово.

SSH в Linux
В зависимости от версии Linux для загрузки SSH нужны разные наборы команд. Рассмотрим варианты.
Загрузка на Ubuntu. Зайдите в служебную строку быстрой комбинацией Ctrl + Alt + T. Затем получите доступ к новым данным и обновите репозиторий командой sudo apt update. Загрузите сетевой протокол командой sudo apt-get install ssh. Следующий шаг — загрузите OpenSSH и добавьте пакет SSH-сервера в список автозагрузки, для этого введите в терминал sudo systemctl enable sshd. Настойки будут установлены по умолчанию. Чтобы проверить, успешно ли прошла установка, наберите в терминале sudo systemctl status sshd.
Загрузка на CentOS. Сперва загрузите OpenSSH. Затем настройте SSH-сервер для автоматического запуска при загрузке системы командами sudo systemctl enable sshd и sudo systemctl start sshd. Успешность установки можно проверить командой sudo systemctl status ssh.
Загрузку софта на основе APT выполните через команду apt -y install openssh-server.
Загрузка софта на основе RPM произведите с помощью команд для пакетного менеджера YUM — yum -y install openssh-serveropenssh-server или для пакетного менеджера DNF — dnf -y install openssh-server.
Загрузку софта на основе Pacman выполните командой pacman -S openssh.
Установить подсоединение SSH в Linux можно и с помощью служебного меню. Для этого нужно нажать Ctrl+Alt+T, после подключиться командой ssh root@IP, указав свое имя и IP-адрес своего сервера. Потом потребуется ввести пароль и добавить новое устройство в список доверенных устройств — он добавляется в файл по пути ~/.ssh/known_hosts, где хранится список доверенных устройств.
Чтобы сгенерировать новые SSH-ключи, нужно использовать команду ssh-keygen. Изначально ключи хранятся в папке ~/.ssh/. По желанию можно ввести пароль для дополнительного шифрования ключа на диске.
Подключение не работает: что делать
При подключении и настройке SSH у вас могут возникнуть сложности. Разберемся с типовыми проблемами соединения и тем, как их устранить.
Если вы видите надпись «Connection Refused», то следует проверить:
Находится ли клиент в вашей системе. Впишите команду ssh в окне терминала, и если увидите ответ «command not found», значит, нужно установить клиент OpenSSH.
Правильно ли вы написали IP-адрес и указали номер порта. IP можно проверить командой ping <ip>. Если используете нестандартный порт, то нужно добавить аргумент -p к команде (ssh -p <port> <user>@<IP>).
Работает ли служба SSH или ее нужно включить. Чтобы проверить статус, введите sudo systemctl status sshd. А чтобы включить саму службу, введите sudo systemctl start sshd.
Доступен ли SSH на удаленном сервере или его нужно установить.
Не ограничивает ли брандмауэр SSH-соединения или нужно настроить разрешение.
Кстати, учтите, что в Linux Debian для суперпользователя root подключение к серверу по SSH не разрешено, при авторизации будет всплывать уведомление «access denied».
Заключение
Вот мы и разобрались, что SSH — это криптографический сетевой протокол. Он предназначен для удаленного доступа к устройствам через безопасное соединение. Надежное шифрование обеспечивает конфиденциальность и помогает безопасно туннелировать небезопасные приложения, например, SMTP, IMAP, POP3 и CVS.
Вам может понравиться


Микросервисы и контейнеры в облаке: как устроены и зачем нужны бизнесу

Как работать с ветками в Git: branch, checkout

Что такое контейнеризация и зачем она нужна в разработке приложений

Как применять git reset и git revert эффективно: отменяем коммиты в Git

IT-аналитик: кто такой и чем занимается в разработке

VDI для бизнеса: что это такое и как работает

3 ключевые ошибки управления доступом в облаке: находим и устраняем

Главные новости GoCloud и последние обновления в облаке — дайджест Cloud.ru

Гибридное облако: 5 эффективных сценариев применения

Dogfooding as a Service: как пополнять бэклог идей по продуктам без особых усилий

Приглашаем на IT-конференцию GoCloud 10 апреля 2025

Нереляционная база данных NoSQL — что это и в чем ее особенности

Cloud.ru и AI: как мы поддержали выход Wildberries на новый рынок

Какие новости за февраль и март — дайджест Cloud.ru

INSERT INTO SQL: примеры добавления данных в таблицу

Node.js на Ubuntu 24.04: как установить и настроить

Что такое HTTPS и как он защищает ваши данные

REST API: что это и как использовать

Как создать Telegram Web App: инструкция по разработке Mini App

Как привлекать клиентов и зарабатывать до 20% на рекомендациях: готовые инструменты

Коды ошибок HTTP: что нужно знать о серверных и клиентских ошибках

Лучшие дистрибутивы Linux: выбор популярных версий

Система управления базами данных (СУБД): что это такое и зачем нужна

Все о Telegram-ботах: какие бывают и как их сделать самому

VPS/VDS: что это такое и чем они отличаются? Полное руководство

Что такое NVMe и как он отличается от SATA SSD и M.2

Микросервисная архитектура: чем она хороша и кому нужна

Как развернуть WordPress в облаке: инструкция для новичков

Применение LLM в бизнесе: опыт лидеров и роль облачного провайдера

Центры обработки данных (ЦОД): что это и как они работают

Какие новости за январь — дайджест Cloud.ru

Команда grep в Linux: как искать строки и шаблоны

PostgreSQL: что это за СУБД и чем она хороша

Что может chmod: как управлять доступами к файлам и папкам в Linux

Как узнать IP-адрес в Linux через командную строку

Как узнать IP-адрес своего компьютера

Система MySQL: что это и для чего нужна

Команды kill и killall в Linux: как завершить ненужные процессы

Работа с файлами в Linux: их создание и организация через терминал

Стандарт Tier III для дата-центра: что значит и почему это круто

Какие новости за декабрь и начало января — дайджест Cloud.ru

Что такое FTP-протокол и как настроить FTP сервер

Белые и серые IP, динамические и статические - в чем различие

Как защищать сайты и приложения в облаке от DDoS-атак

Какие новости за ноябрь — дайджест Cloud.ru

BAT-файлы: что это такое, зачем они нужны и как их создавать

Гайд по протоколу HTTP: расшифровка, структура и механизм работы

Межсетевой экран, firewall и брандмауэр: что это, в чем между ними разница и зачем они нужны

Kubernetes на Cloud.ru Evolution: возможности и преимущества

Какие новости за октябрь — дайджест Cloud.ru

Как создать сетевую архитектуру для размещения межсетевых экранов на платформе Облако VMware

Рассказать про технологии лампово, или Как мы провели конференцию GoCloud Tech для инженеров и...

Какие новости за сентябрь — дайджест Cloud.ru

Высокоресурсные вычисления: роль суперкомпьютеров в жизни и бизнесе

Реферальная программа Cloud.ru: как устроена и как на ней зарабатывать

Сетевая модель OSI: что это такое и зачем она нужна

Какие новости за август — дайджест Cloud.ru

Сетевые протоколы передачи данных — что это такое и какие бывают

Какие новости за июль — дайджест Cloud.ru

Как новые возможности в юридических документах Cloud.ru облегчают работу с договорами и не только

Какие новости за июнь — дайджест Cloud.ru

Как обновления VMware Cloud Director облегчают управление и делают работу с инфраструктурой в ...

Как мы рассчитывали «Панораму российского IT-рынка» за 2022 год

Как снизить риски утечки данных и санкций госрегуляторов: 152-ФЗ в Cloud.ru

Бесплатный курс по работе с Cloud.ru Advanced: рассказываем, в чем польза, кому подойдет и как...

Как модель Anything as a Service упрощает IT-процессы

Снижение рисков на производстве: AI-сервис распознает нарушения ношения СИЗ

Kandinsky 2.1: новый уровень в генерации изображений по текстовому описанию

Облачные сервисы для стартапов: как пройти путь от идеи до цифрового продукта и не разориться

Создать пользователя, настроить 2FA, связаться с поддержкой — новые возможности личного кабине...

VDI: что это, как работает и в чем выгода для бизнеса

Как защитить облачную инфраструктуру — рассказываем на примере межсетевого экрана нового покол...

Как начать использовать AI/ML на практике

Бессерверные вычисления: что это за технология и кому она нужна

Чек-лист: как обеспечить безопасность облачной инфраструктуры

Искусственный интеллект

Что такое IaaS?

Что такое PaaS

Machine Learning

Data Science

Машинное обучение без учителя

Классическое машинное обучение

Нейронные сети

Глубокое обучение

Защита персональных данных: как легче соблюдать закон с Cloud.ru и сохранять спокойствие

Как сохранить IT-инфраструктуру и бизнес: руководство к действию

Машинное обучение и Big Data в кибербезопасности

Ответы на актуальные вопросы

Что такое DDoS-атаки, чем они опасны и как от них защититься

Аудит информационной безопасности: что это, зачем и когда его проводить

Межсетевые экраны: UTM, NGFW-системы, NTA, NDR

Обзор межсетевых экранов, систем IPS и IDS

PostgreSQL vs MySQL: какая система подходит вашему бизнесу

Основы резервного копирования

Специальное предложение «180 дней тестового периода резервного копирования» для всех клиентов
Платформа SberCloud Advanced теперь обеспечивает максимальный уровень защиты персональных данных

Что такое объектное хранилище S3 и как его используют

Customer Enablement: как SberCloud работает с клиентами, чтобы сделать миграцию в облако комфо...

Сеть доставки контента CDN: новые функциональные возможности и преимущества

Объясняем на кейсах: польза CDN для бизнеса

Новая Windows Server 2022 в облаке SberCloud — новые возможности клиентов

Запуск нового сервиса Managed OpenShift в облачной среде SberCloud

Как работает технология DNS

SberCloud Advanced запустила третью ресурсную зону доступности для комфортной работы клиентов

PostGIS в PostgreSQL — как можно использовать

GitLab для начинающих: как и для чего используется

Краткий обзор методологии CI/CD: принципы, этапы, плюсы и минусы

Персональные данные: правильно обрабатываем и храним

Кто и зачем использует облачные модели IaaS и PaaS

152-ФЗ в облаке: хранение персональных данных в облаке

Как работает CDN (Content Delivery Network)?

Service Level Agreement (SLA): все о соглашении об уровне сервиса

Что такое «интернет поведения» (IoB)?

Чек-лист: 6 шагов для успешной миграции в облако

Машинное обучение: просто о сложном

Профессия DevOps-инженер: кто это и чем занимается

Гайд по Kubernetes. Эпизод I: k8s для неразработчиков

Публичные, частные и гибридные облака: в чем разница?
