[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for Kubernetes](../index.md) > [Пошаговые инструкции](index.md) > Подключение к узлу по SSH

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

Чтобы подключиться к [узлу](../concepts/index.md#node-group) [кластера Managed Service for Kubernetes](../concepts/index.md#kubernetes-cluster) по [SSH](../../glossary/ssh-keygen.md):
* Добавьте публичный ключ в метаданные при [создании группы узлов Managed Service for Kubernetes](node-group/node-group-create.md).

  {% note info %}

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

  {% endnote %}

* [Настройте группы безопасности](connect/security-groups.md) кластера Managed Service for Kubernetes.

  {% note warning %}

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

  {% endnote %}

Подробнее в разделе [Подключение к виртуальной машине по SSH](../../compute/operations/vm-connect/ssh.md).

Отдельные узлы в группах узлов — это виртуальные машины Yandex Compute Cloud с автоматически сгенерированными именами. Чтобы сконфигурировать узлы, воспользуйтесь инструкциями, приведенными ниже, или [другими инструкциями по управлению группами узлов](index.md#node-group).

{% note alert %}

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

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

{% endnote %}

## Создайте пары ключей SSH {#creating-ssh-keys}

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

{% list tabs group=operating_system %}

- Linux/macOS {#linux-macos}

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

     ```bash
     ssh-keygen -t ed25519
     ```

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

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

- Windows 10/11 {#windows}

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

     ```bash
     ssh-keygen -t ed25519
     ```

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

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

- Windows 7/8 {#windows7-8}

  Создайте ключи с помощью приложения PuTTY:
  1. [Скачайте](https://www.putty.org) и установите PuTTY.
  1. Добавьте папку с PuTTY в переменную `PATH`:

      1. Нажмите кнопку **Пуск** и в строке поиска Windows введите **Изменение системных переменных среды**.
      1. Справа снизу нажмите кнопку **Переменные среды...**.
      1. В открывшемся окне найдите параметр `PATH` и нажмите **Изменить**.
      1. Добавьте путь к папке в список.
      1. Нажмите кнопку **ОК**.

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

     ![ssh_generate_key](../../_assets/compute/ssh-putty/ssh_generate_key.png)

  1. В поле **Key passphrase** введите надежный пароль. Повторно введите его в поле ниже.
  1. Нажмите кнопку **Save private key** и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
  1. Сохраните ключ в текстовом файле одной строкой. Для этого скопируйте открытый ключ из текстового поля в текстовый файл с названием `id_ed25519.pub`.

{% endlist %}

## Приведите публичный ключ к формату метаданных {#key-format}

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

[Созданный ранее](#creating-ssh-keys) публичный ключ имеет следующий формат:

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

Пример:

> ```text
> ssh-ed25519 AAAAB3NzaC***********lP1ww ed25519-key-20190412
> ```

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

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

Пример:

> ```text
> testuser:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser
> ```

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

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

Пример:

> ```text
> testuser1:ssh-ed25519 AAAAB3NzaC***********lP1ww testuser1
> testuser2:ssh-ed25519 ONEMOREkey***********avEHw testuser2
> ```

## Создайте группу узлов и добавьте публичный ключ {#node-create}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.
  1. [Перейдите](https://kz.console.yandex.cloud/link/managed-kubernetes) в сервис **Managed Service for&nbsp;Kubernetes**.
  1. Выберите кластер Managed Service for Kubernetes.
  1. На панели слева выберите **Управление узлами**.
  1. Нажмите кнопку **Создать группу узлов**.
  1. Задайте параметры группы узлов.
  1. В блоке **Доступ** укажите данные для доступа на узел Managed Service for Kubernetes:
      * В поле **Логин** введите имя пользователя.
      * В поле **SSH-ключ** вставьте содержимое файла публичного ключа.
  1. Нажмите кнопку **Создать**.

- CLI {#cli}

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

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

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

  ```bash
  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.

- Terraform {#tf}

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

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

  1. Создайте конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes согласно инструкции [Создание группы узлов](node-group/node-group-create.md).

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

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

  1. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
      1. Выполните команду:
      
         ```bash
         terraform validate
         ```
      
         Если в файлах конфигурации есть ошибки, Terraform на них укажет.

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

      1. Выполните команду для просмотра планируемых изменений:
      
         ```bash
         terraform plan
         ```
      
         Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
      
      1. Если вас устраивают планируемые изменения, внесите их:
         1. Выполните команду:
      
            ```bash
            terraform apply
            ```
      
         1. Подтвердите изменение ресурсов.
         1. Дождитесь завершения операции.

      {% note warning "Ограничения по времени" %}
      
      Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
      
      * создание и изменение — 60 минут;
      * удаление — 20 минут.
      
      Операции, которые длятся дольше указанного времени, прерываются.
      
      {% cut "Как изменить эти ограничения?" %}
      
      Добавьте к описанию группы узлов кластера блок `timeouts`, например:
      
      ```hcl
      resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
        ...
        timeouts {
          create = "1h30m"
          update = "1h30m"
          delete = "60m"
        }
      }
      ```
      
      {% endcut %}
      
      {% endnote %}

  Подробнее в [документации провайдера Terraform](../../terraform/resources/kubernetes_node_group.md).

- API {#api}

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

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

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

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

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

  Воспользуйтесь методом REST API [create](../managed-kubernetes/api-ref/NodeGroup/create.md) для ресурса [NodeGroup](../managed-kubernetes/api-ref/NodeGroup/index.md) или вызовом gRPC API [NodeGroupService/Create](../managed-kubernetes/api-ref/grpc/NodeGroup/create.md).

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

{% endlist %}

Подробнее о создании группы узлов Managed Service for Kubernetes и передаваемых параметрах смотрите на странице [Создание группы узлов](node-group/node-group-create.md).

## Обновите ключи группы узлов {#node-add-metadata}

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

{% note warning %}

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

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  {% note warning %}

  После изменения метаданных через [консоль управления](https://kz.console.yandex.cloud) группа узлов временно перейдет в статус `Reconciling`: все узлы в группе будут пересозданы для применения изменений.

  {% endnote %}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.
  1. [Перейдите](https://kz.console.yandex.cloud/link/managed-kubernetes) в сервис **Managed Service for&nbsp;Kubernetes**.
  1. Выберите кластер Managed Service for Kubernetes.
  1. На панели слева выберите **Управление узлами**.
  1. На вкладке **Группы узлов** выберите группу узлов, в которой вы хотите обновить реквизиты.
  1. На панели сверху нажмите кнопку ![image](../../_assets/console-icons/pencil.svg) **Редактировать**.
  1. Раскройте блок **Метаданные**.
  1. Замените текущее значение ключа `ssh-keys` на содержимое файла с реквизитами.
  1. Нажмите кнопку **Сохранить**.

- CLI {#cli}

  1. Посмотрите описание команды CLI для добавления и обновления метаданных группы узлов Managed Service for Kubernetes:

      ```bash
      yc managed-kubernetes node-group add-metadata --help
      ```

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

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

      Имя группы узлов можно запросить со [списком групп узлов в каталоге](node-group/node-group-list.md#list).

- Terraform {#tf}

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

      О том, как создать такой файл, читайте в разделе [Создание группы узлов](node-group/node-group-create.md).

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

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

  1. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
      1. Выполните команду:
      
         ```bash
         terraform validate
         ```
      
         Если в файлах конфигурации есть ошибки, Terraform на них укажет.

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

      1. Выполните команду для просмотра планируемых изменений:
      
         ```bash
         terraform plan
         ```
      
         Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
      
      1. Если вас устраивают планируемые изменения, внесите их:
         1. Выполните команду:
      
            ```bash
            terraform apply
            ```
      
         1. Подтвердите изменение ресурсов.
         1. Дождитесь завершения операции.

  Подробнее в [документации провайдера Terraform](../../terraform/resources/kubernetes_node_group.md).

- API {#api}

  {% note info %}
  
  Ниже перечислены параметры для тела запроса к REST API. Чтобы указать параметр в вызове gRPC API, преобразуйте его имя из [lowerCamelCase](https://ru.wikipedia.org/wiki/CamelCase) в [snake_case](https://ru.wikipedia.org/wiki/Snake_case). Например, параметр `minResourcePresetId` преобразуется в `min_resource_preset_id`.
  
  {% endnote %}

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

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

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

  1. Получите все существующие метаданные для группы узлов одним из способов:
     
     * Воспользуйтесь методом REST API [get](../managed-kubernetes/api-ref/NodeGroup/get.md) для ресурса [NodeGroup](../managed-kubernetes/api-ref/NodeGroup/index.md).
     * Используйте вызов gRPC API [NodeGroupService/Get](../managed-kubernetes/api-ref/grpc/NodeGroup/get.md).
     
     Передайте в запросе идентификатор группы узлов в параметре `nodeGroupId`. Идентификатор можно запросить со [списком групп узлов в каталоге](node-group/node-group-list.md#list).
     
     Метаданные будут перечислены в виде пар `ключ=значение` в поле `nodeTemplate.metadata` ответа.

  1. Воспользуйтесь методом REST API [update](../managed-kubernetes/api-ref/NodeGroup/update.md) для ресурса [NodeGroup](../managed-kubernetes/api-ref/NodeGroup/index.md) или вызовом gRPC API [NodeGroupService/Update](../managed-kubernetes/api-ref/grpc/NodeGroup/update.md) и передайте в запросе:

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

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

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

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

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

          {% cut "Пример перечисления метаданных в параметре" %}

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

          {% endcut %}

          {% note alert %}
          
          Метаданные, не перечисленные в параметре `nodeTemplate.metadata`, будут удалены.
          
          После этого группа узлов временно перейдет в статус **Reconciling**: все узлы в группе узлов будут пересозданы для применения изменений.
          
          {% endnote %}

{% endlist %}

## Получите публичный IP-адрес узла {#node-public-ip}

Чтобы подключиться к узлу кластер Managed Service for Kubernetes, укажите [публичный IP-адрес](../../vpc/concepts/address.md#public-addresses) узла Managed Service for Kubernetes. Его можно узнать одним из следующих способов.

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. Откройте раздел **Compute Cloud** в каталоге, где создан ваш кластер Managed Service for Kubernetes.
  1. На панели слева выберите ![image](../../_assets/console-icons/layers-3-diagonal.svg) **Группы виртуальных машин**.
  1. Нажмите на группу ВМ, имя которой соответствует идентификатору группы узлов Managed Service for Kubernetes.
  1. В открывшемся окне перейдите на вкладку **Виртуальные машины**.
  1. Нажмите на ВМ, публичный адрес которой хотите узнать.
  1. Публичный IP-адрес указан в блоке **Сеть** в строке **Публичный IPv4-адрес**.

- CLI {#cli}

  1. Узнайте идентификатор группы ВМ, которая соответствует группе узлов Managed Service for Kubernetes.

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

     ```bash
     yc managed-kubernetes node-group list
     ```

     Результат:

     ```text
     +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
     |          ID          |      CLUSTER ID      |      NAME      |  INSTANCE GROUP ID   |     CREATED AT      | STATUS  | SIZE |
     +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
     | cat684ojo3ir******** | cata9ertn6tc******** | test-nodegroup | cl17i6943n92******** | 2019-04-12 12:38:35 | RUNNING |    2 |
     +----------------------+----------------------+----------------+----------------------+---------------------+---------+------+
     ```

  1. Посмотрите список узлов Managed Service for Kubernetes, которые принадлежат данной группе.

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

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

     Результат:

     ```text
     +----------------------+---------------------------+--------------------------+---------------+----------------+
     |     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] |                |
     +----------------------+---------------------------+--------------------------+---------------+----------------+
     ```

- kubectl CLI {#kubectl}

  1. [Установите kubectl](https://kubernetes.io/ru/docs/tasks/tools/install-kubectl) и [настройте его на работу с созданным кластером](connect/index.md#kubectl-connect).

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

     ```bash
     kubectl get nodes -o wide
     ```

     Результат:

     ```bash
     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`.

{% endlist %}

## Подключитесь к узлу {#node-connect}

Вы можете подключиться к узлу Managed Service for Kubernetes по протоколу SSH, когда он будет запущен (в статусе `RUNNING`). Для этого можно использовать утилиту `ssh` в Linux и macOS и программу [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/) для Windows.

{% list tabs group=operating_system %}

- Linux/macOS/Windows 10 {#linux-macos-windows10}

  В терминале выполните следующую команду, указав имя пользователя и [публичный IP-адрес](#node-public-ip) узла:

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

  Если вы передавали реквизиты для подключения по SSH при [создании группы узлов](#node-create) с помощью консоли управления, используйте имя пользователя, которое вы указали в поле **Логин**.

  Если вы передавали реквизиты для подключения по SSH при [создании группы узлов](#node-create) с помощью CLI, Terraform, API или [обновляли реквизиты](#node-add-metadata), используйте имя пользователя, которое вы [указали в файле с реквизитами для подключения по SSH](#key-format).

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

  ```bash
  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 7/8 {#windows7-8}

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

        ![ssh_add_ip](../../_assets/compute/ssh-putty/ssh_add_ip.png)

     1. Откройте в дереве слева пункт **Connection** - **SSH** - **Auth**.
     1. Установите флаг **Allow agent forwarding**.
     1. В поле **Private key file for authentication** выберите файл с приватным ключом.

        ![ssh_choose_private_key](../../_assets/compute/ssh-putty/ssh_choose_private_key.png)

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

        ![ssh_save_session](../../_assets/compute/ssh-putty/ssh_save_session.png)

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

        ![ssh_unknown_host_warning](../../_assets/compute/ssh-putty/ssh_unknown_host_warning.png)

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

        Введите имя пользователя:
        * Если вы передавали реквизиты для подключения по SSH при [создании группы узлов](#node-create) с помощью консоли управления, введите имя пользователя, которое вы указали в поле **Логин**.
        * Если вы передавали реквизиты для подключения по SSH при [создании группы узлов](#node-create) с помощью CLI, Terraform, API или [обновляли реквизиты](#node-add-metadata), введите имя пользователя, которое вы [указали в файле с реквизитами для подключения по SSH](#key-format). 

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

        ![ssh_login](../../_assets/compute/ssh-putty/ssh_login.png)

  Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:
  1. Нажмите правой кнопкой мыши на значок pageant на панели задач.
  1. Выберите пункт меню **Saved sessions**.
  1. В списке сохраненных сессий выберите нужную сессию.

{% endlist %}