Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Все инструкции
    • Подключение к узлу по SSH
    • Подключение к узлу через OS Login
    • Обновление Kubernetes
    • Настройка автомасштабирования
    • Подключение Terraform-провайдера Kubernetes
      • Информация об имеющихся группах узлов
      • Создание группы узлов
      • Подключение к узлу по SSH
      • Подключение к узлу через OS Login
      • Настройка автомасштабирования
      • Изменение группы узлов
      • Управление Kubernetes-метками узлов
      • Удаление группы узлов
    • Подключение внешних узлов к кластеру
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

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

  • Создайте пары ключей SSH
  • Приведите публичный ключ к формату метаданных
  • Создайте группу узлов и добавьте публичный ключ
  • Обновите ключи группы узлов
  • Получите публичный IP-адрес узла
  • Подключитесь к узлу
  1. Пошаговые инструкции
  2. Подключение к узлу по SSH

Подключение к узлу по SSH

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Создайте пары ключей SSH
  • Приведите публичный ключ к формату метаданных
  • Создайте группу узлов и добавьте публичный ключ
  • Обновите ключи группы узлов
  • Получите публичный IP-адрес узла
  • Подключитесь к узлу

Чтобы подключиться к узлу кластера Managed Service for Kubernetes по SSH:

  • Добавьте публичный ключ в метаданные при создании группы узлов Managed Service for Kubernetes.

    Примечание

    В образах Linux, которые используются на узлах Managed Service for Kubernetes, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.

  • Настройте группы безопасности кластера Managed Service for Kubernetes.

    Важно

    Настройки групп безопасности могут препятствовать подключению к кластеру Managed Service for Kubernetes.

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

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

Внимание

Не изменяйте параметры ВМ узлов, в том числе имена, сетевые интерфейсы и SSH-ключи, с помощью интерфейсов Compute Cloud или SSH-подключения к ВМ.

Это может нарушить работу отдельных узлов, групп узлов и всего кластера Managed Service for Kubernetes.

Создайте пары ключей SSHСоздайте пары ключей SSH

Подготовьте ключи для использования с вашим узлом кластера Managed Service for Kubernetes. Для этого:

Linux/macOS
Windows 10/11
Windows 7/8
  1. Откройте терминал.

  2. Создайте новый ключ с помощью команды ssh-keygen:

    ssh-keygen -t ed25519
    

    После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя id_ed25519, ключи создаются в директории ~/.ssh.

    Публичная часть ключа будет сохранена в файле с названием <имя_ключа>.pub.

  1. Запустите cmd.exe или powershell.exe.

  2. Создайте новый ключ с помощью команды ssh-keygen. Выполните команду:

    ssh-keygen -t ed25519
    

    После выполнения команды вам будет предложено указать имя файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя id_ed25519, ключи создаются в директории C:\Users\<имя_пользователя>\.ssh\.

    Публичная часть ключа будет сохранена в файле с названием <имя_ключа>.pub.

Создайте ключи с помощью приложения PuTTY:

  1. Скачайте и установите PuTTY.

  2. Добавьте папку с PuTTY в переменную PATH:

    1. Нажмите кнопку Пуск и в строке поиска Windows введите Изменение системных переменных среды.
    2. Справа снизу нажмите кнопку Переменные среды....
    3. В открывшемся окне найдите параметр PATH и нажмите Изменить.
    4. Добавьте путь к папке в список.
    5. Нажмите кнопку ОК.
  3. Запустите приложение PuTTYgen.

  4. В качестве типа генерируемой пары выберите Ed25519. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.

    ssh_generate_key

  5. В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.

  6. Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.

  7. Сохраните ключ в текстовом файле одной строкой. Для этого скопируйте открытый ключ из текстового поля в текстовый файл с названием id_ed25519.pub.

Приведите публичный ключ к формату метаданныхПриведите публичный ключ к формату метаданных

Реквизитами для подключения к узлам кластера Managed Service for Kubernetes по SSH являются имя пользователя и публичный ключ. Данные реквизиты передаются с помощью метаданных в определенном формате.

Созданный ранее публичный ключ имеет следующий формат:

<тип_ключа> <тело_публичного_ключа> <опциональный_комментарий>

Пример:

ssh-ed25519 AAAAB3NzaC***********lP1ww ed25519-key-20190412

Создайте файл с реквизитами для подключения по SSH в следующем формате:

<имя_пользователя>:<тип_ключа> <тело_публичного_ключа> <имя_пользователя>

Пример:

testuser:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser

Данный формат подходит для создания и изменения группы узлов Managed Service for Kubernetes с помощью интерфейсов CLI, Terraform и API, а также для изменения группы узлов с помощью консоли управления. При создании группы узлов в консоли управления используются отдельные поля Логин и SSH-ключ.

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

Пример:

testuser1:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser1
testuser2:ssh-ed25519 ONEMOREkey***********avEHw testuser2

Создайте группу узлов и добавьте публичный ключСоздайте группу узлов и добавьте публичный ключ

Консоль управления
CLI
Terraform
API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
  2. Выберите кластер Managed Service for Kubernetes.
  3. На панели слева выберите Управление узлами.
  4. Нажмите кнопку Создать группу узлов.
  5. Задайте параметры группы узлов.
  6. В блоке Доступ укажите данные для доступа на узел Managed Service for Kubernetes:
    • В поле Логин введите имя пользователя.
    • В поле SSH-ключ вставьте содержимое файла публичного ключа.
  7. Нажмите кнопку Создать.

Метаданные с реквизитами для подключения по SSH передаются в группу узлов Managed Service for Kubernetes в виде пар ключ=значение.

Важно

Ключ user-data метаданных ВМ не поддерживается для передачи пользовательских данных. Передайте параметры для подключения по SSH в ключе ssh-keys.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать группу узлов Managed Service for Kubernetes и передать данные пользователя для подключения по SSH, выполните команду:

yc managed-kubernetes node-group create \
  --name <имя_группы_узлов> \
  --cluster-name <имя_кластера> \
  --fixed-size <количество_узлов_в_группе> \
  --network-interface security-group-ids=[<список_групп_безопасности>],subnets=<имя_подсети>,ipv4-address=nat \
  --metadata-from-file ssh-keys=<путь_к_файлу_с_реквизитами>

Где --metadata-from-file — параметр для передачи метаданных в группу узлов в виде пар ключ=значение. Укажите в ключе ssh-keys путь к файлу с реквизитами для подключения по SSH.

Метаданные с реквизитами для подключения по SSH передаются в группу узлов Managed Service for Kubernetes в виде пар ключ=значение.

Важно

Ключ user-data метаданных ВМ не поддерживается для передачи пользовательских данных. Передайте параметры для подключения по SSH в ключе ssh-keys.

  1. Создайте конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes согласно инструкции Создание группы узлов.

  2. В описании группы узлов задайте значение ключа метаданных ssh-keys для параметра instance_template.metadata:

    resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
      cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id
      ...
      instance_template {
        metadata = {
          "ssh-keys" = file("<путь_к_файлу_с_реквизитами>")
          ...
        }
        ...
      }
      ...
    }
    
  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Метаданные с реквизитами для подключения по SSH передаются в группу узлов Managed Service for Kubernetes в виде пар ключ=значение.

Важно

Ключ user-data метаданных ВМ не поддерживается для передачи пользовательских данных. Передайте параметры для подключения по SSH в ключе ssh-keys.

Если вы хотите передать несколько реквизитов для подключения по SSH, преобразуйте содержимое файла с реквизитами в одну строку, отделив реквизиты друг от друга последовательностью специальных символов CRLF (\r\n). В запросе к API с телом в формате JSON нельзя использовать многострочные сообщения.

Пример преобразованных реквизитов:

testuser1:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser1\r\ntestuser2:ssh-ed25519 ONEMOREkey***********avEHw testuser2

Воспользуйтесь методом REST API create для ресурса NodeGroup или вызовом gRPC API NodeGroupService/Create.

Реквизиты для подключения по SSH передаются в параметре nodeTemplate.metadata в ключе ssh-keys.

Подробнее о создании группы узлов Managed Service for Kubernetes и передаваемых параметрах см. на странице Создание группы узлов.

Обновите ключи группы узловОбновите ключи группы узлов

Чтобы изменить реквизиты для подключения по SSH к группе узлов Managed Service for Kubernetes, обновите ее метаданные.

Важно

Реквизиты для подключения по SSH будут полностью перезаписаны. Вы не сможете подключиться к узлам кластера Managed Service for Kubernetes с помощью прежних реквизитов.

Консоль управления
CLI
Terraform
API

Важно

После изменения метаданных через консоль управления группа узлов временно перейдет в статус Reconciling: все узлы в группе будут пересозданы для применения изменений.

  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
  2. Выберите кластер Managed Service for Kubernetes.
  3. На панели слева выберите Управление узлами.
  4. На вкладке Группы узлов выберите группу узлов, в которой вы хотите обновить реквизиты.
  5. На панели сверху нажмите кнопку Редактировать.
  6. Раскройте блок Метаданные.
  7. Замените текущее значение ключа ssh-keys на содержимое файла с реквизитами.
  8. Нажмите кнопку Сохранить.
  1. Посмотрите описание команды CLI для добавления и обновления метаданных группы узлов Managed Service for Kubernetes:

    yc managed-kubernetes node-group add-metadata --help
    
  2. Выполните команду:

    yc managed-kubernetes node-group add-metadata \
      --name <имя_группы_узлов> \
      --metadata-from-file ssh-keys=<путь_к_файлу_с_реквизитами>
    

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

  1. Откройте конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.

    О том, как создать такой файл, см. в разделе Создание группы узлов.

  2. Измените в описании группы узлов значение ключа метаданных ssh-keys для параметра instance_template.metadata:

    resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
      cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id
      ...
      instance_template {
        metadata = {
          "ssh-keys" = file("<путь_к_файлу_с_реквизитами>")
          ...
        }
        ...
      }
      ...
    }
    
  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Если вы хотите передать несколько реквизитов для подключения по SSH, преобразуйте содержимое файла с реквизитами в одну строку, отделив реквизиты друг от друга последовательностью специальных символов CRLF (\r\n). В запросе к API с телом в формате JSON нельзя использовать многострочные сообщения.

    Пример преобразованных реквизитов:

    testuser1:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser1\r\ntestuser2:ssh-ed25519 ONEMOREkey***********avEHw testuser2
    
  2. Получите все существующие метаданные для группы узлов, воспользовавшись методом REST API get для ресурса NodeGroup, и передайте в запросе идентификатор группы узлов в параметре nodeGroupId.

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

    Метаданные будут перечислены в виде пар ключ=значение в поле nodeTemplate.metadata ответа.

  3. Воспользуйтесь методом REST API update для ресурса NodeGroup и передайте в запросе:

    • Идентификатор группы узлов в параметре nodeGroupId.

    • Параметр updateMask со значением nodeTemplate.metadata.

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    • Параметр nodeTemplate.metadata, в котором перечислены без изменений все существующие метаданные группы узлов в виде пар ключ=значение.

      Для ключа ssh-keys замените текущее значение на созданную строку с реквизитами.

      Пример перечисления метаданных в параметре
      • Существующие ключи метаданных в группе узлов:

        "nodeTemplate": {
            "metadata": {
                "ssh-keys": "<существующие_реквизиты_одной_строкой>",
                "<существующий_ключ_1>": "<существующее_значение_1>",
                "<существующий_ключ_2>": "<существующее_значение_2>"
            },
            ...
        }
        
      • Ключи метаданных для передачи в запросе к API:

        "nodeTemplate": {
            "metadata": {
                "ssh-keys": "<новые_реквизиты_одной_строкой>",
                "<существующий_ключ_1>": "<существующее_значение_1>",
                "<существующий_ключ_2>": "<существующее_значение_2>"
            }
        }
        

      Внимание

      Метаданные, не перечисленные в параметре nodeTemplate.metadata, будут удалены.

      После этого группа узлов временно перейдет в статус Reconciling: все узлы в группе узлов будут пересозданы для применения изменений.

Получите публичный IP-адрес узлаПолучите публичный IP-адрес узла

Чтобы подключиться к узлу кластер Managed Service for Kubernetes, укажите публичный IP-адрес узла Managed Service for Kubernetes. Его можно узнать одним из следующих способов.

Консоль управления
CLI
kubectl CLI
  1. Откройте раздел Compute Cloud в каталоге, где создан ваш кластер Managed Service for Kubernetes.
  2. На панели слева выберите Группы виртуальных машин.
  3. Нажмите на группу ВМ, имя которой соответствует идентификатору группы узлов Managed Service for Kubernetes.
  4. В открывшемся окне перейдите на вкладку Виртуальные машины.
  5. Нажмите на ВМ, публичный адрес которой хотите узнать.
  6. Публичный IP-адрес указан в блоке Сеть в строке Публичный IPv4-адрес.
  1. Узнайте идентификатор группы ВМ, которая соответствует группе узлов Managed Service for Kubernetes.

    Идентификатор находится в столбце INSTANCE GROUP ID.

    yc managed-kubernetes node-group list
    

    Результат:

    +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
    |          ID          |      CLUSTER ID      |      NAME      |  INSTANCE GROUP ID   |     CREATED AT      | STATUS  | SIZE |
    +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
    | cat684ojo3ir******** | cata9ertn6tc******** | test-nodegroup | cl17i6943n92******** | 2019-04-12 12:38:35 | RUNNING |    2 |
    +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
    
  2. Посмотрите список узлов Managed Service for Kubernetes, которые принадлежат данной группе.

    Публичный IP-адрес узла Managed Service for Kubernetes указан в столбце IP после символа ~.

    yc compute instance-group list-instances cl17i6943n92********
    

    Результат:

    +----------------------+---------------------------+--------------------------+---------------+----------------+
    |     INSTANCE ID      |           NAME            |            IP            |    STATUS     | STATUS MESSAGE |
    +----------------------+---------------------------+--------------------------+---------------+----------------+
    | ef31h24k03pg******** | cl17i6943n92********-itif | 10.0.0.27~84.201.145.251 | RUNNING [53m] |                |
    | ef37ddhg9i7j******** | cl17i6943n92********-ovah | 10.0.0.22~84.201.149.184 | RUNNING [53m] |                |
    +----------------------+---------------------------+--------------------------+---------------+----------------+
    
  1. Установите kubectl и настройте его на работу с созданным кластером.

  2. Выполните команду:

    kubectl get nodes -o wide
    

    Результат:

    NAME                       STATUS  ROLES   AGE  VERSION  INTERNAL-IP  EXTERNAL-IP     OS-IMAGE            KERNEL-VERSION     CONTAINER-RUNTIME
    cl17i6943n92********-itif  Ready   <none>  31m  v1.13.3  10.0.0.27    84.201.145.251  Ubuntu 18.04.1 LTS  4.15.0-29-generic  docker://18.6.2
    cl17i6943n92********-ovah  Ready   <none>  31m  v1.13.3  10.0.0.22    84.201.149.184  Ubuntu 18.04.1 LTS  4.15.0-29-generic  docker://18.6.2
    

    Публичный IP-адрес указан в столбце EXTERNAL-IP.

Подключитесь к узлуПодключитесь к узлу

Вы можете подключиться к узлу Managed Service for Kubernetes по протоколу SSH, когда он будет запущен (в статусе RUNNING). Для этого можно использовать утилиту ssh в Linux и macOS и программу PuTTY для Windows.

Linux/macOS/Windows 10
Windows 7/8

В терминале выполните следующую команду, указав имя пользователя и публичный IP-адрес узла:

ssh <имя_пользователя>@<публичный_IP-адрес_узла>

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

Если вы передавали реквизиты для подключения по SSH при создании группы узлов с помощью CLI, Terraform, API или обновляли реквизиты, используйте имя пользователя, которое вы указали в файле с реквизитами для подключения по SSH.

При первом подключении к узлу Managed Service for Kubernetes может появиться предупреждение о неизвестном хосте:

The authenticity of host '130.193.40.101 (130.193.40.101)' can't be established.
ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********.
Are you sure you want to continue connecting (yes/no)?

Введите в терминале слово yes и нажмите Enter.

В Windows соединение устанавливается с помощью приложения PuTTY.

  1. Запустите приложение Pageant.
    1. Нажмите правой кнопкой мыши на значок Pageant на панели задач.
    2. В контекстном меню выберите пункт Add key.
    3. Выберите сгенерированный PuTTY приватный ключ в формате .ppk. Если для ключа задан пароль, введите его.
  2. Запустите приложение PuTTY.
    1. В поле Host Name (or IP address) введите публичный IP-адрес ВМ, к которой вы хотите подключиться. Укажите порт 22 и тип соединения SSH.

      ssh_add_ip

    2. Откройте в дереве слева пункт Connection - SSH - Auth.

    3. Установите флаг Allow agent forwarding.

    4. В поле Private key file for authentication выберите файл с приватным ключом.

      ssh_choose_private_key

    5. Вернитесь в меню Sessions. В поле Saved sessions введите любое название для сессии и нажмите кнопку Save. Настройки сессии сохранятся под указанным именем. Вы сможете использовать этот профиль сессии для подключения с помощью Pageant.

      ssh_save_session

    6. Нажмите кнопку Open. Если вы подключаетесь к узлу Managed Service for Kubernetes в первый раз, может появиться предупреждение о неизвестном хосте:

      ssh_unknown_host_warning

      Нажмите кнопку Да. Откроется окно терминала с предложением ввести логин пользователя, от имени которого устанавливается соединение.

      Введите имя пользователя:

      • Если вы передавали реквизиты для подключения по SSH при создании группы узлов с помощью консоли управления, введите имя пользователя, которое вы указали в поле Логин.
      • Если вы передавали реквизиты для подключения по SSH при создании группы узлов с помощью CLI, Terraform, API или обновляли реквизиты, введите имя пользователя, которое вы указали в файле с реквизитами для подключения по SSH.

      Нажмите Enter. Если все настроено верно, будет установлено соединение с сервером.

      ssh_login

Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:

  1. Нажмите правой кнопкой мыши на значок pageant на панели задач.
  2. Выберите пункт меню Saved sessions.
  3. В списке сохраненных сессий выберите нужную сессию.

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

Предыдущая
Все инструкции
Следующая
Подключение к узлу через OS Login
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»