yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

SSH протокол: что это такое и как использовать на Windows и Linux

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

Инструкции
Иллюстрация для статьи на тему «SSH протокол: что это такое и как использовать на Windows и Linux»

Что такое протокол SSH

SSH (Secure Shell) — это протокол для безопасного удаленного подключения к другому компьютеру через интернет. То есть без него у нас бы не было возможности удаленно подключаться к любым устройствам и настраивать софт. А главное — делать это безопасно и без утечки информации. 

Устроено подключение по SSH  так:

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

  2. Публичный ключ хранится на сервере и шифрует данные.

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

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

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

Кстати, для удобного управления публичными SSH-ключами в Cloud.ru Evolution есть отдельный сервис, которым может воспользоваться любой владелец виртуальной машины в облаке. 

Примерная схема подключения с помощью протокола SSHПримерная схема подключения с помощью протокола SSH
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Как и зачем разработали SSH

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

Вот какие преимущества выгодно выделяли SSH на фоне более «древних» аналогов:

Blog image

Впрочем, уже в 1999 году первоначальный код SSH перестал работать, и появились две альтернативы: коммерческий продукт SSH-2 и бесплатный OpenSSH, который и сейчас используется в большинстве операционных систем.

Сегодня SSH применяется для: 

  • управления облачными серверами;

  • безопасной передачи файлов;

  • работы с git-репозиториями;

  • автоматизации задач через скрипты.

Зачем это нужно? Представьте, что центральный офис вашей компании находится в Казани. А у филиала в Нижнем Новгороде сломался сайт. Через SSH-протокол технический специалист из Казани может:

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

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

  3. Экстренно обновить файлы сайта, если требуется срочное исправление.

  4. Настроить автоматическое резервное копирование, чтобы избежать проблем в будущем.

  5. Запретить доступ злоумышленникам, если проблема была вызвана атакой.

Все это можно сделать за 10-15 минут без необходимости отправлять специалиста в командировку или просить сотрудников филиала выполнять сложные инструкции по телефону.

Главный плюс SSH — безопасное удаленное подключениеГлавный плюс SSH — безопасное удаленное подключение

Функциональные возможности 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).

Принцип работы протокола SSHПринцип работы протокола SSH

Обмен ключами и шифрование

После установки TCP-соединения:

  • Сервер отправляет свой публичный ключ. Клиент проверяет его по отпечатку (fingerprint). При первом подключении ключ сохраняется в папке ~/.ssh/known_hosts.

  • Создание сессионного ключа. Клиент и сервер используют алгоритм Диффи-Хеллмана. Генерируется временный симметричный ключ для текущей сессии. 

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

Аутентификация пользователя

Система предлагает 2 основных способа аутентификации: 

  • По паролю. Пароль передается в зашифрованном виде. Этот способ менее безопасен, но более прост в настройке. 

  • По ключам. Клиент использует приватный ключ (id_rsa). Сервер проверяет соответствие публичному ключу (authorized_keys).

Рабочая сессия

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

  • Интерактивную оболочку — для полного доступа к командной строке удаленного сервера. Чаще всего такой доступ необходим для срочного исправления проблем на сервере, обновления ПО на всех корпоративных серверах и проверки логов в режиме реального времени. 

  • Передачу файлов (SCP/SFTP) — для копирования файлов с локального компьютера на сервер или скачивания с сервера. Эта возможность нужна, когда нужно разместить на сайтах какие-нибудь обновления, безопасно передать финансовые отчеты или сделать резервное копирование важных данных.

  • Проброс портов (tunneling) — для создания безопасного туннеля для доступа к закрытым сервисам. Эту технологию используют для безопасной удаленной работы с внутренними CRM/ERP-системами, доступа к тестовым серверам без их выноса в публичный контур или просто для защиты данных при подключении через общедоступные сети, например, в отеле или кафе. 

Базовые команды SSH

Для управления Secure Shell существуют множество команд, рассмотрим самые базовые:

Blog image

Процессы установки и использования 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.

Пример команды SSHПример команды SSH

Подключение к серверу через интерактивные оболочки (CMD и PowerShell)

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

Пример команды SSHПример команды SSH

Здесь мы рассматриваем только подключение к удаленному серверу. Если вас интересуют возможности удаленного управления Windows-серверами через PowerShell с использованием SSH как транспортного протокола, то это тема для отдельной статьи. PowerShell Remoting требует отдельной настройки и рассматривается в продвинутых руководствах.

Как подключиться по SSH с помощью PuTTY

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

Как подключиться с помощью PuTTY:

  1. Загрузите программу на устройство и перейдите к настройкам. Нам нужны две вкладки: SSH и Session.

  2. Во вкладке SSH проверьте, чтобы галочка стояла возле второй версии SSH. Во вкладке Session введите IP-адрес удаленного ПК. Если будете использовать нестандартный номер порта, также введите его. По умолчанию стоит порт 22.

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

  4. Нажмите Open и в открытом окне введите логин и пароль для подключения к серверу. Готово.

Подключение к серверу через PuTTYПодключение к серверу через PuTTY

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», то следует проверить:

  1. Находится ли клиент в вашей системе. Впишите команду ssh в окне терминала, и если увидите ответ «command not found», значит, нужно установить клиент OpenSSH.

  2. Правильно ли вы написали IP-адрес и указали номер порта. IP можно проверить командой ping <ip>. Если используете нестандартный порт, то нужно добавить аргумент -p к команде (ssh -p <port> <user>@<IP>).

  3. Работает ли служба SSH или ее нужно включить. Чтобы проверить статус, введите sudo systemctl status sshd. А чтобы включить саму службу, введите sudo systemctl start sshd.

  4. Доступен ли SSH на удаленном сервере или его нужно установить.

  5. Не ограничивает ли брандмауэр SSH-соединения или нужно настроить разрешение.

Кстати, учтите, что в Linux Debian для суперпользователя root подключение к серверу по SSH не разрешено, при авторизации будет всплывать уведомление «access denied».

Заключение

Вот мы и разобрались, что SSH — это криптографический сетевой протокол. Он предназначен для удаленного доступа к устройствам через безопасное соединение. Надежное шифрование обеспечивает конфиденциальность и помогает безопасно туннелировать небезопасные приложения, например, SMTP, IMAP, POP3 и CVS.

23 мая 2025

Вам может понравиться