Лев Корольков
Руководитель IT-департамента EFSOL Oblako
Время чтения: 18 мин

SSH

Защищенный удаленный доступ

SSH, или Secure Shell, — сетевой протокол защищенного удаленного доступа к компьютерам, серверам и сетевым устройствам. Он позволяет администратору подключиться к удаленной системе через сеть, выполнять команды, управлять файлами, запускать сервисы и создавать защищенные туннели.

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

SSH широко используется в Linux-инфраструктуре, DevOps, облаках, дата-центрах, Git, CI/CD, автоматизации и администрировании серверов.

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

Что такое SSH простыми словами

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

Администратор запускает SSH Client на своем компьютере и подключается к серверу:

ssh user@server.example.com

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

Расшифровка SSH

SSH расшифровывается как Secure Shell — защищенная оболочка.

Название отражает исторически основную задачу: предоставить безопасную удаленную командную оболочку.

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

Зачем нужен SSH

Основные сценарии использования:

  • удаленное администрирование Linux Servers;
  • выполнение команд;
  • работа с файлами;
  • SFTP и SCP;
  • работа с Git Repositories;
  • автоматизация Deployment;
  • Port Forwarding;
  • подключение через Bastion Host;
  • доступ к закрытым внутренним сервисам;
  • управление сетевым оборудованием.

SSH Client и SSH Server

В SSH участвуют две основные стороны.

КомпонентНазначение
SSH ClientИнициирует защищенное соединение
SSH ServerПринимает подключения и проверяет клиента

На Linux SSH Server часто работает как системный Service, а пользователь подключается к нему через клиентскую программу.

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

Упрощенно процесс состоит из нескольких этапов:

  1. Client подключается к SSH Server.
  2. Стороны согласуют параметры защищенного соединения.
  3. Client проверяет идентичность Server по Host Key.
  4. Создается зашифрованный канал.
  5. Server проверяет пользователя.
  6. После успешной Authentication открывается Session.

SSH и TCP/IP

SSH работает как прикладной протокол поверх TCP/IP.

SSH
↓
TCP
↓
IP

TCP обеспечивает надежную передачу потока данных, а SSH добавляет шифрование, Authentication и управление удаленной сессией.

Порт SSH

Стандартным TCP Port для SSH является 22.

server.example.com:22

Администратор может настроить другой Port, но это не должно рассматриваться как полноценная мера безопасности само по себе.

Подключение к SSH

Базовая команда:

ssh user@192.0.2.20

или:

ssh user@server.example.com

Client определяет адрес сервера, устанавливает TCP Connection и начинает SSH Handshake.

Подключение на нестандартный порт

Если Server слушает другой Port:

ssh -p 2222 user@server.example.com

Port должен быть разрешен локальным и сетевым Firewall.

SSH Host Key

SSH Server имеет Host Key, который используется для подтверждения его идентичности перед клиентом.

При первом подключении Client обычно предлагает сохранить Fingerprint сервера.

При последующих соединениях сохраненное значение сравнивается с текущим.

Зачем проверять Fingerprint

Если Host Key неожиданно изменился, это может быть связано с переустановкой сервера, изменением инфраструктуры или потенциальной попыткой Man-in-the-Middle.

Предупреждение нельзя бездумно игнорировать. Нужно проверить причину изменения.

known_hosts

SSH Client сохраняет информацию об известных Host Keys в локальном хранилище, часто связанном с файлом known_hosts.

Так клиент может обнаружить неожиданную смену идентичности сервера.

SSH Authentication

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

Распространенные способы:

  • Password Authentication;
  • Public Key Authentication;
  • Certificate-based Authentication;
  • дополнительные многофакторные механизмы в зависимости от инфраструктуры.

Password Authentication

Пользователь вводит пароль своей учетной записи.

Пароль передается внутри уже зашифрованного SSH-канала, поэтому не идет по сети открытым текстом.

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

SSH Key Authentication

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

  • Private Key хранится у пользователя;
  • Public Key размещается на сервере.

Server проверяет, что подключающийся Client действительно владеет соответствующим Private Key.

Private Key

Private Key — секретный файл пользователя.

Его нельзя отправлять другим людям, публиковать в Git Repository или хранить в открытом виде на общедоступном сервере.

Компрометация Private Key потенциально дает злоумышленнику возможность использовать доступ владельца.

Public Key

Public Key не является секретом.

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

Даже зная Public Key, злоумышленник не должен иметь возможности восстановить Private Key.

authorized_keys

На Linux Public Keys пользователей часто хранятся в файле authorized_keys соответствующей учетной записи.

Если Public Key находится в разрешенном списке и Client доказывает владение Private Key, Server может разрешить вход.

Преимущества SSH Keys

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

Однако безопасность зависит от защиты Private Key, правильных прав доступа и процесса отзыва ключей.

Passphrase для SSH Key

Private Key можно дополнительно защитить Passphrase.

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

Для пользовательских ключей это полезный дополнительный уровень защиты.

SSH Agent

SSH Agent хранит разблокированные ключи в памяти и позволяет использовать их без повторного ввода Passphrase для каждого подключения.

Это повышает удобство, но доступ к Agent также нужно защищать.

ssh-add

В распространенной Client-среде ключ можно добавить в SSH Agent специальной командой.

После этого SSH Client использует его при подходящих соединениях.

Создание SSH Key

Для генерации пары ключей используется SSH Key Generator.

Например:

ssh-keygen

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

SSH Certificates

В больших организациях управление отдельными Public Keys на сотнях серверов становится сложным.

SSH Certificates позволяют использовать централизованный доверенный Certificate Authority для подписания пользовательских или серверных ключей.

Это упрощает выдачу краткосрочного доступа и отзыв полномочий.

SSH и MFA

SSH Access можно дополнить Multi-factor Authentication.

Например, кроме ключа требуется одноразовый код или подтверждение через Identity Platform.

Это особенно полезно для административного доступа к критичной инфраструктуре.

Удаленная Shell

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

Он может выполнять:

ls
cd /var/log
systemctl status application

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

Выполнение одной команды через SSH

Необязательно открывать интерактивную Shell.

Можно выполнить одну команду:

ssh user@server.example.com 'uptime'

Такой подход часто используется в Scripts и Automation.

SSH и автоматизация

SSH позволяет программно выполнять команды на удаленных серверах.

Это используется в Deployment, Configuration Management и Infrastructure Automation.

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

SSH и Ansible

Configuration Management Systems могут использовать SSH для подключения к Linux Hosts.

Управляющая система отправляет команды и конфигурацию на множество Servers через защищенный канал.

Так администратору не приходится вручную подключаться к каждому узлу.

SCP

SCP используется для передачи файлов через SSH-инфраструктуру.

Пример:

scp file.txt user@server.example.com:/tmp/

Файл передается по защищенному соединению.

SFTP

SFTP, или SSH File Transfer Protocol, предоставляет более функциональную работу с удаленными файлами через SSH.

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

SFTP не следует путать с FTPS: это разные технологии.

SFTP и FTP

SFTPFTP
Работает через SSHИспользует отдельный протокол FTP
Трафик защищен SSHКлассический FTP не шифрует трафик
Обычно использует один SSH ServiceИспользует собственную модель соединений

SSH Port Forwarding

SSH умеет создавать защищенные Tunnel для других сетевых Connections.

Основные варианты:

  • Local Port Forwarding;
  • Remote Port Forwarding;
  • Dynamic Port Forwarding.

Local Port Forwarding

Local Forwarding позволяет открыть Port на локальном компьютере и направить Traffic через SSH Server к удаленному сервису.

Например:

ssh -L 15432:db.internal:5432 user@bastion.example.com

После этого обращение к локальному Port 15432 передается через SSH Tunnel к внутренней Database.

Когда полезен Local Forwarding

Он используется, когда Database или Internal Web Service не доступны напрямую с рабочего компьютера, но доступны с Bastion Host.

Так не требуется публиковать Database Port в интернет.

Remote Port Forwarding

Remote Forwarding создает Port на удаленной стороне SSH-соединения и направляет его к ресурсу со стороны клиента.

Это может использоваться для временного предоставления доступа к локальному сервису из другой сети.

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

Dynamic Port Forwarding

Dynamic Forwarding позволяет SSH Client работать как локальная SOCKS Proxy.

Пример:

ssh -D 1080 user@server.example.com

Приложение, настроенное на SOCKS Port 1080, отправляет трафик через SSH Server.

SSH Tunnel

SSH Tunnel — общее название защищенной передачи другого Traffic через SSH Connection.

Application
↓
SSH Tunnel
↓
SSH Server
↓
Internal Service

Он удобен для временного административного доступа, но не всегда является заменой полноценного VPN.

SSH и VPN

SSH TunnelVPN
Обычно проксирует конкретные Ports или приложенияМожет подключать целую IP Network
Удобен для точечного доступаУдобен для широкого сетевого доступа
Работает через SSHИспользует специализированный VPN Protocol

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

Bastion Host

Bastion Host, или Jump Host, — специально защищенный сервер, через который администраторы подключаются к внутренним системам.

Administrator
↓ SSH
Bastion
↓ SSH
Private Server

Private Server при этом не имеет Public SSH Access.

Зачем нужен Bastion Host

Вместо публикации SSH на сотнях Servers наружу компания оставляет одну контролируемую точку входа.

На Bastion можно централизовать MFA, Logging и IP Restrictions.

ProxyJump

Современный SSH Client может автоматически подключаться через промежуточный Jump Host.

Концептуально:

Client → Bastion → Target Server

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

SSH Config

Часто используемые Host, User, Port и Jump Host можно сохранять в Client Configuration.

Например, логическое имя Production Server может содержать все необходимые параметры подключения.

Это снижает количество ошибок и упрощает работу команды.

SSH и Proxy Server

SSH Client может использовать промежуточный Proxy или Jump Host для доступа к серверу, который нельзя открыть напрямую.

Также Dynamic Forwarding превращает SSH в SOCKS Proxy для приложений.

SSH и Firewall

Firewall должен ограничивать, кто может подключаться к SSH Service.

Вместо:

Internet → Server:22 ALLOW ANY

предпочтительнее:

Corporate VPN → Server:22 ALLOW
Internet → Server:22 DENY

Так значительно уменьшается Attack Surface.

Почему не стоит открывать SSH всему интернету

Публичный Port 22 постоянно сканируется автоматизированными системами и Bots.

Даже если Authentication надежна, лишний внешний Endpoint создает дополнительный риск и шум в Logs.

Для критичных систем лучше применять VPN, Bastion или IP Allowlist.

Смена порта SSH

Перенос SSH с 22 на другой Port может уменьшить количество простого автоматического сканирования и шумных попыток входа.

Но это не заменяет Public Key Authentication, MFA, Firewall и обновления.

Нестандартный порт скрывает сервис от части примитивного сканирования, но не является полноценной защитой.

Отключение Root Login

Для многих серверов полезно запрещать прямой удаленный вход под Root.

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

Это улучшает Audit и уменьшает риск компрометации наиболее привилегированной учетной записи.

SSH и sudo

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

Так права выдаются более точно и действия легче связывать с конкретным пользователем.

Password Authentication или Key Authentication

Для административных Production Servers часто предпочтительна Public Key Authentication.

Password Login можно отключить, если инфраструктура ключей, Recovery Process и доступ команды организованы правильно.

Это уменьшает риск обычного Password Brute Force.

Brute Force

Brute Force — массовые попытки подобрать Credentials.

Если SSH доступен из интернета и разрешены Passwords, Automated Bots могут постоянно проверять популярные логины и пароли.

Защита включает Strong Authentication, Firewall, Rate Limiting и Monitoring.

Fail2ban-подобная защита

Система может анализировать Authentication Logs и временно блокировать Source IP после большого количества неудачных попыток.

Это уменьшает шум Brute Force, но не заменяет сильную Authentication.

SSH и Man-in-the-Middle

SSH защищает от MITM только при корректной проверке Host Identity.

Если пользователь всегда без проверки принимает новый Host Key, злоумышленник потенциально может выдать свой сервер за настоящий.

Поэтому Host Key Verification является важной частью SSH Security.

Почему нельзя удалять known_hosts без проверки

При сообщении о смене Host Key иногда рекомендуют просто удалить старую запись.

Так можно убрать предупреждение, но не выяснить причину.

Сначала нужно подтвердить изменение через доверенный административный канал.

SSH Agent Forwarding

Agent Forwarding позволяет использовать ключи локального SSH Agent через промежуточный сервер без копирования Private Key на него.

Но скомпрометированный промежуточный Host потенциально может злоупотребить доступом к Agent во время активной сессии.

Поэтому Agent Forwarding следует включать только там, где это действительно необходимо.

Не копировать Private Key на серверы

Распространенная плохая практика — копировать личный Private Key на Bastion, а затем использовать его для дальнейших подключений.

Компрометация Bastion тогда приводит к краже ключа.

Лучше применять ProxyJump, краткосрочные Certificates или другие контролируемые механизмы.

SSH и Git

Git Hosting Platforms часто поддерживают SSH для работы с Repositories.

Пользователь добавляет Public Key в учетную запись и затем выполняет:

git clone git@example.com:team/project.git

SSH проверяет пользователя, а Git передает данные Repository внутри защищенного соединения.

SSH Keys для Git

Для Git удобно иметь отдельный Key, не обязательно совпадающий с ключом административного доступа к Production Servers.

Разделение Credentials уменьшает последствия компрометации одного из сервисов.

Deploy Key

Deploy Key используется конкретным Server или CI/CD системой для доступа к определенному Repository.

Так не приходится использовать личный ключ разработчика на Production Server.

SSH и CI/CD

Deployment Pipeline может подключаться по SSH к Server и запускать обновление приложения.

Однако Credentials CI должны иметь минимально необходимые права.

Не следует давать Pipeline универсальный Root Key ко всей инфраструктуре.

Machine-to-Machine доступ

Для автоматизации полезно создавать отдельные Service Accounts и Keys.

Каждому Automation Process назначается минимально необходимый Scope.

Это упрощает отзыв доступа и Audit.

SSH и Docker

SSH обычно используется для управления Docker Host, а не для входа в каждый Container.

Администратор подключается к Host и затем использует Container Runtime для просмотра Logs или запуска команд.

Почему SSH внутри Container часто не нужен

Контейнеры обычно проектируются как управляемые процессы, а диагностика выполняется через Container Platform.

Добавление SSH Server в каждый Container увеличивает Attack Surface и усложняет управление Credentials.

SSH и Kubernetes

В Kubernetes администратор обычно работает через API и kubectl, а не подключается по SSH к каждому Pod.

SSH может использоваться для административного доступа к Nodes, но такой доступ следует ограничивать.

SSH в облаке

Virtual Machine в Cloud часто получает SSH Public Key при создании.

Private Key остается у администратора, а VM принимает подключения только с разрешенных сетевых источников.

Security Group может разрешить Port 22 только из VPN или Bastion Network.

Public IP для SSH

VM не обязательно должна иметь Public IP.

Администратор может подключаться через VPN, Bastion, Private Connectivity или специализированный Cloud Access Service.

Так SSH Endpoint вообще не публикуется напрямую в интернет.

SSH и Zero Trust

В Zero Trust модели доступ к Server определяется не только IP-адресом пользователя.

Учитываются Identity, MFA, Device State, временные Credentials и конкретная цель подключения.

SSH Certificates и Identity-aware Access хорошо вписываются в такой подход.

Just-in-Time Access

Вместо постоянного SSH-доступа администратору можно выдавать право на короткий период.

Например, пользователь запрашивает доступ на час для выполнения Maintenance.

После окончания окна Credential перестает работать.

SSH Logging

Server Logs фиксируют успешные и неуспешные попытки Authentication, начало Session и другие события.

Логи полезны для Security Monitoring и расследования инцидентов.

Audit SSH Sessions

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

Обычного факта успешного SSH Login иногда недостаточно.

SSH и SIEM

Authentication Logs можно передавать в SIEM.

Например, Alert создается, если:

  • Root Login происходит из неожиданной сети;
  • резко растет число Failed Logins;
  • одна учетная запись входит одновременно из разных регионов;
  • в Production появляется новый неизвестный Key.

Monitoring SSH

Полезно отслеживать:

СобытиеПричина контроля
Failed AuthenticationВыявление Brute Force
Successful LoginAudit административного доступа
Root LoginКонтроль привилегированных сессий
New Public KeyКонтроль выдачи доступа
Host Key ChangeОбнаружение неожиданных изменений сервера

SSH и Secrets Management

Private Keys являются Secrets и требуют нормального жизненного цикла.

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

Для автоматизации Credentials желательно хранить в Secret Manager, а не внутри Source Code.

Ротация SSH Keys

Постоянные ключи, которые существуют годами, сложно контролировать.

При увольнении сотрудника или компрометации ноутбука необходимо быстро удалить соответствующий Public Key со всех Servers.

Централизованная Identity или SSH Certificates упрощают эту задачу.

Least Privilege

SSH Access должен соответствовать принципу минимальных привилегий.

Разработчику, которому нужно читать Logs одного приложения, необязательно предоставлять Root-доступ ко всему Server.

Ограничение команд для SSH Key

В специализированных сценариях конкретному Public Key можно разрешить только определенную команду или функцию.

Так Automation Credential не получает полноценную интерактивную Shell.

SFTP-only пользователь

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

Это полезно для партнерских интеграций, где клиенту необходимо загружать документы, но не выполнять команды на Server.

Chroot-подобная изоляция

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

Так партнер не получает доступ ко всей файловой системе.

SSH и производительность

SSH добавляет Encryption и Integrity Protection, поэтому требует вычислительных ресурсов.

Для обычной административной Session это практически не является проблемой, но при передаче очень больших объемов данных производительность зависит от CPU, Network Bandwidth и выбранных параметров.

Compression

SSH может использовать Compression для определенных соединений.

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

SSH Keepalive

Долгоживущая Session может разрываться из-за NAT, Firewall Timeout или нестабильной сети.

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

Почему SSH-сессия зависает

Причинами могут быть:

  • обрыв сети;
  • Packet Loss;
  • Firewall Timeout;
  • смена IP клиента;
  • проблема VPN;
  • перегрузка Server.

Наличие TCP Connection не гарантирует, что удаленная система нормально отвечает на команды.

Connection Refused

Ошибка Connection Refused обычно означает, что Server достижим, но на указанном Port нет слушающего SSH Service или соединение активно отклоняется.

Connection Timeout

Timeout чаще связан с Firewall, Routing, неправильным IP или отсутствием сетевого пути.

Различие между Refused и Timeout помогает быстрее диагностировать проблему.

Permission Denied

Если сетевое соединение установлено, но Authentication не проходит, SSH Client может сообщить об отказе в доступе.

Причины:

  • неправильный User;
  • неподходящий Key;
  • неверные права на файлы;
  • Key отсутствует в authorized_keys;
  • метод Authentication запрещен Server Policy.

Too Many Authentication Failures

Если SSH Agent содержит много Keys, Client может попробовать несколько вариантов подряд.

Server способен завершить Session после превышения допустимого количества попыток.

Полезно явно указать нужный Key.

Host Key Changed

Сообщение о смене Host Key требует проверки.

Если Server действительно переустановлен, запись можно обновить после подтверждения нового Fingerprint.

Если изменений не планировалось, следует рассматривать событие как потенциальный Security Incident.

Диагностика SSH

  1. Проверить DNS или IP Address.
  2. Проверить Routing.
  3. Проверить доступность TCP Port.
  4. Проверить Firewall.
  5. Убедиться, что SSH Service запущен.
  6. Проверить Username.
  7. Проверить Authentication Method.
  8. Изучить Client и Server Logs.

Verbose Mode

SSH Client может выводить подробную диагностическую информацию о соединении.

Это помогает понять, какой Key используется, на каком этапе происходит ошибка и как выполняется Authentication.

Диагностические Logs не следует публиковать без проверки на наличие чувствительной информации.

SSH и IPv6

SSH способен работать как через IPv4, так и через IPv6.

Server должен слушать соответствующий Interface, а Firewall — разрешать нужный Traffic.

Важно не настроить строгие ограничения только для IPv4 и случайно оставить публичный SSH через IPv6.

Типичные ошибки при использовании SSH

  1. Открыть Port 22 всему интернету без необходимости.
  2. Использовать слабые пароли.
  3. Разрешить прямой Root Login.
  4. Хранить Private Key в Git.
  5. Использовать один общий Key для всей команды.
  6. Игнорировать изменение Host Key.
  7. Копировать личные Private Keys на Bastion.
  8. Не удалять доступ бывших сотрудников.
  9. Давать Automation Root-доступ.
  10. Не анализировать SSH Logs.

Общий SSH Key для команды

Если десять администраторов используют один Private Key, невозможно надежно определить, кто именно выполнил подключение.

Кроме того, при уходе одного сотрудника придется менять Key для всех.

Лучше выдавать индивидуальные Credentials.

Как правильно защитить SSH

Шаг 1. Ограничить сетевой доступ

Разрешите SSH только через VPN, Bastion или доверенные административные сети.

Шаг 2. Использовать сильную Authentication

Для Production предпочтительны Keys, Certificates и MFA там, где это оправдано.

Шаг 3. Отключить ненужные методы

Если Password Login не используется, его можно запретить после проверки Recovery Process.

Шаг 4. Ограничить Root Access

Используйте персональные Accounts и sudo.

Шаг 5. Защитить Private Keys

Храните их как Secrets и используйте Passphrase.

Шаг 6. Настроить Logging

Фиксируйте попытки входа и административные события.

Шаг 7. Регулярно отзывать старый доступ

Удаляйте ненужные Public Keys и Accounts.

Шаг 8. Обновлять SSH Server

Устаревшие компоненты могут содержать известные уязвимости.

Практический пример

Компания размещает Web Application в облаке. Backend и Database работают в Private Subnets и не имеют Public IP.

Для администраторов создан Bastion Host. Его SSH Port доступен только из корпоративного VPN.

Каждый инженер имеет персональную SSH Key Pair. Private Key хранится на рабочем устройстве и защищен Passphrase.

После подключения к Bastion администратор использует Jump Host для доступа к нужному Backend Server.

Прямой Root Login запрещен. Для административных команд используется sudo.

Database Port не публикуется наружу. Если администратору временно нужен доступ к PostgreSQL, он создает Local SSH Tunnel через Bastion.

Все успешные и неудачные SSH Logins отправляются в SIEM. При увольнении сотрудника его Public Key и учетная запись централизованно удаляются.

CI/CD использует отдельный Service Credential с ограниченными правами и не имеет личных ключей разработчиков.

Так SSH обеспечивает удаленное администрирование, но доступ остается сегментированным и контролируемым.

SSH для бизнеса

SSH является одним из основных административных протоколов современной IT-инфраструктуры. Через него инженеры управляют Linux Servers, сетевым оборудованием, Cloud VM и Deployment-системами.

Для бизнеса главная ценность SSH — возможность безопасно выполнять удаленное управление через интернет и частные сети без передачи команд и Credentials открытым текстом.

Однако сам факт использования SSH не гарантирует безопасности. Общие Keys, публичный Port 22, слабые Passwords и бесконтрольный Root Access способны превратить удобный административный инструмент в серьезный риск.

Правильная архитектура включает индивидуальные Credentials, Bastion или VPN, минимальные права, Logging, MFA для критичных сред и регулярное удаление устаревшего доступа.

Когда используется SSH

  • администрирование Linux Server;
  • работа с Cloud VM;
  • Git Repositories;
  • SFTP;
  • CI/CD;
  • Bastion Host;
  • туннелирование к Private Services;
  • Configuration Management;
  • Network Equipment Management.

Когда SSH не является лучшим решением

Для постоянного подключения целой корпоративной сети лучше использовать VPN или специализированную Private Connectivity.

Для массового управления Kubernetes Workloads применяется Kubernetes API, а не SSH в каждый Pod.

Для автоматизированного управления Cloud Resources предпочтительны API и Infrastructure as Code, а SSH оставляют для административных и диагностических сценариев.

Связанные термины

ТерминСвязь с SSH
TCP/IPSSH работает поверх TCP/IP
Public KeyИспользуется для Authentication пользователя
Private KeyСекретная часть SSH Key Pair
SFTPПротокол передачи файлов через SSH
SCPИнструмент защищенной передачи файлов
Bastion HostПромежуточная точка административного доступа
VPNАльтернативный способ защищенного сетевого доступа
FirewallОграничивает доступ к SSH Port
Port ForwardingСоздает защищенный туннель через SSH
GitМожет использовать SSH для доступа к Repository
MFAДополняет SSH Authentication вторым фактором
Zero TrustИспользует Identity и временный административный доступ

Краткий итог

SSH — протокол защищенного удаленного доступа, который позволяет выполнять команды, передавать файлы и создавать сетевые туннели между клиентом и сервером. Он работает поверх TCP/IP и обычно использует TCP Port 22.

Для Authentication применяются Passwords, SSH Keys, Certificates и дополнительные механизмы MFA. Public Key можно размещать на Server, а соответствующий Private Key должен оставаться секретным у владельца.

В Production SSH рекомендуется ограничивать через Firewall, VPN или Bastion Host, не использовать общие Credentials, защищать Private Keys и вести Audit подключений. При такой архитектуре SSH остается надежным инструментом администрирования серверов, облачной инфраструктуры и DevOps-систем.

Частые вопросы

6 вопросов
Что такое SSH?

SSH, или Secure Shell, — протокол защищенного удаленного доступа к серверам и сетевым устройствам. Он шифрует передаваемые данные и позволяет выполнять команды, передавать файлы и создавать защищенные туннели.

На каком порту работает SSH?

Стандартным TCP-портом SSH является 22. Сервер можно настроить на другой порт, но смена номера сама по себе не заменяет Firewall, надежную аутентификацию и другие меры безопасности.

Чем SSH-ключ лучше пароля?

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

Что такое SSH Tunnel?

SSH Tunnel — передача другого сетевого трафика через защищенное SSH-соединение. С помощью Local, Remote и Dynamic Port Forwarding можно предоставить безопасный доступ к внутренним сервисам или создать SOCKS Proxy.

Что такое Bastion Host?

Bastion Host — защищенный промежуточный сервер, через который администраторы подключаются к внутренним системам. Он позволяет не публиковать SSH-порты всех серверов напрямую в интернет и централизовать контроль доступа.

Безопасно ли открывать SSH в интернет?

Технически это возможно, но для критичной инфраструктуры лучше ограничить SSH через VPN, Bastion Host или IP Allowlist. Если публичный доступ необходим, следует использовать сильную аутентификацию, Firewall, актуальное ПО, мониторинг и минимальные привилегии.

Была ли статья полезна?
Документ обновляется командой EFSOL. Свяжитесь с нами, если нашли неточность.
Нужна консультация?

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

Ответим в течение часа в рабочее время
Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.