Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Облачная терминология
    • CDN
    • CLI
    • Cookie
    • CORS
    • DNS
    • gRPC
    • REST API
    • Виртуальная частная сеть (VPN)
    • Полное доменное имя (FQDN)
    • Протокол SSH
    • URL

В этой статье:

  • Как работает подключение по SSH
  • Аутентификация с помощью ключей SSH
  • Преимущества SSH-ключей
  • Команды для работы с SSH-ключами
  • Как сгенерировать ключ SSH
  • Как аутентифицироваться с помощью ключа SSH в Yandex Cloud
  1. Сети и доставка контента
  2. Протокол SSH

Протокол SSH и аутентификация с помощью ключей

Статья создана
Yandex Cloud
Обновлена 26 марта 2025 г.
  • Как работает подключение по SSH
  • Аутентификация с помощью ключей SSH
    • Преимущества SSH-ключей
  • Команды для работы с SSH-ключами
    • Как сгенерировать ключ SSH
    • Как аутентифицироваться с помощью ключа SSH в Yandex Cloud

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

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

Поддержка SSH встроена в операционные системы Unix и Linux — вы можете подключаться к другому компьютеру по протоколу SSH из любого терминала (например, bash). Для работы под управлением Windows есть бесплатные SSH-клиенты (например, Putty). Начиная с версии Windows 10 и Windows Server 2019 в состав операционной системы включен клиент OpenSSH (он может быть не установлен на компьютере изначально, но добавляется в систему по запросу, одной командой).

Как работает подключение по SSHКак работает подключение по SSH

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

Надежность SSH обеспечивается тем, что в процессе подключения создается безопасное соединение («туннель»), по которому передаются только зашифрованные данные — они шифруются на клиенте перед передачей и расшифровываются на сервере после получения.

На сервере выделяется определенный порт для подключения по SSH (по умолчанию используется 22 порт, но для повышения безопасности рекомендуется его менять). Клиент обращается к открытому порту на сервере и передает данные для аутентификации. Сервер «слушает» (постоянно опрашивает) открытый порт, и при получении запроса проверяет подлинность клиента — аутентифицирует его. Если клиент прошел проверку, между клиентом и сервером устанавливается соединение, по которому пересылаются команды и данные.

SSH-сервер поддерживает три способа аутентификации: по IP-адресу клиента, по логину/паролю или по ключу.
Аутентификация по IP-адресу предполагает, что все подключения с указанного адреса автоматически принимаются. Этот способ небезопасен и используется крайне редко. Аутентификация по логину и паролю наиболее привычна для пользователей, но имеет ряд недостатков. Самым безопасным способом считается аутентификация по ключу.

Аутентификация с помощью ключей SSHАутентификация с помощью ключей SSH

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

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

Генерировать ключи можно с использованием разных криптографических алгоритмов. Для Yandex Cloud рекомендуется использовать алгоритм Ed25519: сгенерированные по нему ключи — самые безопасные.

Как правило, ключи хранятся в папке ~/.ssh и представляют собой пары файлов с одинаковыми именами (по умолчанию при генерации ключа типа Ed25519 предлагается имя id_ed25519). Файл с открытым ключом имеет расширение .pub, а файл с закрытым ключом сохраняется без расширения.

Важное правило безопасности: закрытый ключ никогда и никому не пересылается (даже администратору) и не выкладывается в открытые источники, иначе он будет скомпрометирован.

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

Преимущества SSH-ключейПреимущества SSH-ключей

По правилам безопасности для каждого логина необходим свой уникальный пароль определенной длины и сложности, который нужно периодически менять. Записывать пароли не рекомендуется, а запоминать их — целая проблема. В отличие от логинов/паролей, ключи хранятся в файлах, их не нужно запоминать (а значит, нет опасности забыть).
Ключи гораздо длиннее паролей, поэтому их практически невозможно подобрать. Они обеспечивают высокую степень защиты, необходимую бизнесу из-за рисков хакерских атак. Пользователи сегодня часто подключаются к корпоративной сети удаленно, с личных компьютеров и по незащищенным Wi-Fi сетям — это ужесточает требования к защите серверов.
Кроме того, ключи удобно использовать в скриптах, с помощью которых администраторы автоматизируют различные рутинные операции: установку обновлений, создание архивных копий, конфигурирование систем и сервисов. Это особенно востребовано из-за широкого распространения Agile-разработки и DevOps-практик.

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

Команды для работы с SSH-ключамиКоманды для работы с SSH-ключами

Как сгенерировать ключ SSHКак сгенерировать ключ SSH

Для работы с SSH-ключами используются утилиты, входящие в оболочку OpenSSH. Они работают под Linux, Windows и MacOS.

Для генерации ключей предназначена утилита ssh-keygen. Также в состав OpenSSH входят утилиты ssh-agent для кеширования (хранения) ключей, ssh-add для добавления ключей в ssh-agent и еще несколько программ.

Чтобы сгенерировать пару SSH-ключей, в консоли Linux или Windows выполните команду:

ssh-keygen -t ed25519

Параметр –t задает тип создаваемого ключа. Для Yandex Cloud рекомендуется создавать ключи Ed25519 (т. е. на основе криптографического алгоритма Ed25519).

В процессе выполнения ssh-keygen запросит дополнительный пароль для доступа к закрытому ключу. Если вы не хотите указывать пароль, оставьте пустую строку и нажмите Enter.
После выполнения команды ssh-keygen будут созданы два файла — с закрытым и открытым ключом (название и расположение файлов можно указать вручную в момент выполнения программы, по умолчанию это папка ~/.ssh и файлы id_ed25519). Если вы планируете создавать отдельные ключи для разных серверов или сервисов, давайте файлам значимые имена. Например, ключи для подключения к Yandex Cloud можно сохранить в файлах yc_ed25519.

Как аутентифицироваться с помощью ключа SSH в Yandex CloudКак аутентифицироваться с помощью ключа SSH в Yandex Cloud

Как уже говорилось выше, публичную часть SSH-ключа (содержимое файла с расширением .pub) нужно поместить на сервер или в виртуальную машину.

Например, если вы работаете с сервисом Yandex Compute Cloud с помощью консоли управления, при создании виртуальной машины Linux содержимое открытого ключа нужно скопировать в поле SSH-ключ. Если вы создаете виртуальную машину с помощью команды (например, через интерфейс командной строки CLI), то в качестве одного из параметров указывается расположение файла с публичным ключом, и в процессе выполнения команды этот ключ копируется в виртуальную машину.

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

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

ssh <логин>@<IP-адрес>

Где:

  • <логин> — имя пользователя. Не используйте логины, зарезервированные системой, такие как root, admin и т.п.
  • <IP-адрес> — IP-адрес сервера или публичный адрес виртуальной машины в облаке.

Если вы подключаетесь к этому IP-адресу и с этим ключом впервые, у вас будет запрошено согласие на подключение по неизвестному ранее ключу. После этого указанный IP-адрес будет добавлен в файлы known_hosts и config на вашем компьютере (если этих файлов еще нет в той же папке .ssh, они будут созданы, а если файлы уже есть — в них будет добавлена информация про указанный IP-адрес).

После успешного подключения вам могут понадобиться права администратора для выполнения некоторых команд. Пользователь, указанный при создании ВМ, входит в группу sudo, что позволяет выполнять команды с правами root. Для повышения прав используйте sudo. В Yandex Cloud у root нет пароля, поэтому достаточно подключиться к ВМ по SSH и использовать эту команду.

Также вы можете использовать ключ SSH для подключения по OS Login.

Была ли статья полезна?

Предыдущая
Полное доменное имя (FQDN)
Следующая
URL
Проект Яндекса
© 2025 ООО «Яндекс.Облако»