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

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

  • Примеры
  • Просмотреть список изменяемых параметров
  • Изменить имя и описание
  • Изменить метаданные
  • Удалить SSH-ключи из метаданных
  • Включить доступ по OS Login
  1. Пошаговые инструкции
  2. Управление виртуальной машиной
  3. Изменить ВМ

Изменить виртуальную машину

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

После создания ВМ вы можете изменить ее имя, описание, метки, платформу или метаданные.

Как изменить конфигурацию ВМ, читайте в разделе Изменить вычислительные ресурсы виртуальной машины.

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

Чтобы изменить ВМ:

  1. В консоли управления выберите каталог, которому принадлежит ВМ.
  2. Выберите сервис Compute Cloud.
  3. На панели слева выберите Виртуальные машины и нажмите на имя нужной ВМ.
  4. Нажмите кнопку Изменить ВМ.
  5. Измените параметры ВМ, например, переименуйте машину, отредактировав поле Имя.
  6. Нажмите Сохранить изменения.

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

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

  1. Посмотрите описание команды CLI для обновления параметров ВМ:

    yc compute instance update --help
    
  2. Получите список ВМ в каталоге по умолчанию:

    yc compute instance list
    

    Результат:

    +----------------------+-----------------+---------------+---------+----------------------+
    |          ID          |       NAME      |    ZONE ID    | STATUS  |     DESCRIPTION      |
    +----------------------+-----------------+---------------+---------+----------------------+
    | fhm0b28lgfp4******** | first-instance  | ru-central1-a | RUNNING | my first vm via CLI  |
    | fhm9gk85nj7g******** | second-instance | ru-central1-a | RUNNING | my second vm via CLI |
    +----------------------+-----------------+---------------+---------+----------------------+
    
  3. Выберите идентификатор (ID) или имя (NAME) нужной машины, например first-instance.

  4. Измените параметры ВМ, например, переименуйте машину:

    yc compute instance update first-instance \
      --new-name windows-vm
    

Чтобы изменить ВМ, воспользуйтесь методом REST API update для ресурса Instance или вызовом gRPC API InstanceService/Update.

Примечание

При изменении имени ВМ, имя хоста и, соответственно, FQDN не изменяются. Подробнее про генерацию имени FQDN читайте в разделе Имя хоста и внутренний FQDN.

ПримерыПримеры

Просмотреть список изменяемых параметровПросмотреть список изменяемых параметров

Чтобы просмотреть список изменяемых параметров, выполните команду:

CLI
yc compute instance update --help

Изменить имя и описаниеИзменить имя и описание

Чтобы изменить имя и описание ВМ, выполните следующие шаги:

CLI
API

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

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

  1. Получите список ВМ в каталоге по умолчанию:

    yc compute instance list
    

    Результат:

    +----------------------+-----------------+---------------+---------+----------------------+
    |          ID          |       NAME      |    ZONE ID    | STATUS  |     DESCRIPTION      |
    +----------------------+-----------------+---------------+---------+----------------------+
    | fhm0b28lgfp4******** | first-instance  | ru-central1-a | RUNNING | my first vm via CLI  |
    | fhm9gk85nj7g******** | second-instance | ru-central1-a | RUNNING | my second vm via CLI |
    +----------------------+-----------------+---------------+---------+----------------------+
    
  2. Выберите идентификатор (ID) или имя (NAME) нужной машины, например first-instance.

  3. Измените имя и описание ВМ:

    yc compute instance update first-instance \
      --new-name first-vm \
      --description "changed description vm via CLI"
    

Воспользуйтесь методом REST API update для ресурса Instance или вызовом gRPC API InstanceService/Update.

Внимание

Не изменяйте имя ВМ, если она принадлежит группе узлов кластера Managed Service for Kubernetes. Имя для такой ВМ генерируется автоматически, и его изменение нарушит работу кластера.

Изменить метаданныеИзменить метаданные

При внесении изменений в метаданные ВМ с помощью команды Yandex Cloud CLI yc compute instance update, метода REST API update для ресурса Instance или вызова gRPC API InstanceService/Update весь имеющийся набор метаданных в каталоге user-data и в пути instance/attributes/* каталога computeMetadata полностью перезаписывается переданным обновленным набором.

Чтобы добавить, изменить или удалить отдельные ключи в пути instance/attributes/* каталога computeMetadata воспользуйтесь командами Yandex Cloud CLI yc compute instance add-metadata и yc compute instance remove-metadata, методом REST API updateMetadata для ресурса Instance или вызовом gRPC API InstanceService/UpdateMetadata. При этом в каталоге user-data метаданные всегда полностью перезаписываются новым набором значений.

Чтобы изменить метаданные ВМ:

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

Примечание

При создании пользователей ВМ через метаданные с помощью ключа user-data все пользователи будут перезаписаны, в том числе пользователь по умолчанию, заданный в блоке Доступ. Чтобы этого избежать, передавайте в значении ключа user-data данные всех пользователей, в том числе и данные пользователя, заданного в блоке Доступ.

  1. В консоли управления выберите каталог, которому принадлежит ВМ.

  2. В списке сервисов выберите Compute Cloud.

  3. На панели слева выберите Виртуальные машины.

  4. В строке с нужной ВМ нажмите значок и выберите Редактировать.

  5. В блоке Метаданные передайте метаданные в формате Ключ:Значение.

    Например, чтобы создать в ОС виртуальной машины нескольких пользователей, добавьте ключ user-data и в его значении укажите конфигурацию:

    #cloud-config
    datasource:
      Ec2:
        strict_id: false
    ssh_pwauth: no
    users:
    - name: <имя_пользователя_1>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_1>
    - name: <имя_пользователя_2>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_2>
    ...
    - name: <имя_пользователя_n>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_n>
    runcmd: []
    
  6. Нажмите Сохранить изменения.

Примечание

При создании пользователей ВМ через метаданные с помощью ключа user-data все пользователи будут перезаписаны, в том числе пользователь по умолчанию, заданный в параметре --ssh-key. Чтобы этого избежать, передавайте в значении ключа user-data данные всех пользователей, в том числе и данные пользователя, заданного в параметре --ssh-key.

В Yandex Cloud CLI метаданные можно передать в любом из трех параметров:

  • --metadata-from-file — в виде файла конфигурации в формате --metadata-from-file key=<путь_к_файлу>. Этим способом удобно передавать значение, состоящее одновременно из нескольких строк.

    Например, чтобы добавить на ВМ одновременно нескольких пользователей, опишите конфигурацию в файле в формате YAML:

    #cloud-config
    datasource:
      Ec2:
        strict_id: false
    ssh_pwauth: no
    users:
    - name: <имя_пользователя_1>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_1>
    - name: <имя_пользователя_2>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_2>
    ...
    - name: <имя_пользователя_n>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_n>
    runcmd: []
    
  • --metadata — в виде списка пар ключ=значение, разделенных запятой, например --metadata foo1=bar,foo2=baz.

    Если в значении несколько строк, используйте \n в качестве разделителя: --metadata user-data="#ps1\nnet user Administrator Passw0rd".

  • --ssh-key — SSH-ключ. Только для ВМ Linux.

    Compute Cloud создаст пользователя yc-user и добавит указанный SSH-ключ в список авторизованных ключей. После создания ВМ вы сможете подключиться к ней по SSH с помощью этого ключа.

Вы можете комбинировать эти параметры, например:

yc compute instance update \
  --name my-instance \
  --metadata-from-file user-data=metadata.yaml \
  --metadata serial-port-enable=1
...

Примечание

При создании пользователей ВМ через метаданные с помощью ключа user-data все пользователи будут перезаписаны, в том числе пользователь по умолчанию, заданный в параметре ssh-keys. Чтобы этого избежать, передавайте в значении ключа user-data данные всех пользователей, в том числе и данные пользователя, заданного в параметре ssh-keys.

В Terraform метаданные можно указать любым из трех способов:

  • В виде отдельного файла с пользовательскими метаданными, который будет обработан агентом cloud-init. Для этого в блоке metadata укажите путь к файлу с пользовательскими метаданными, например к cloud-init.yaml:

    ...
    metadata = {
      user-data = "${file("cloud-init.yaml")}"
    }
    ...
    
    Пример содержимого файла cloud-init.yaml
    #cloud-config
    datasource:
      Ec2:
        strict_id: false
    ssh_pwauth: no
    users:
    - name: <имя_пользователя_1>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_1>
    - name: <имя_пользователя_2>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_2>
    ...
    - name: <имя_пользователя_n>
      sudo: 'ALL=(ALL) NOPASSWD:ALL'
      shell: /bin/bash
      ssh_authorized_keys:
      - <публичный_SSH-ключ_n>
    runcmd: []
    
  • В блоке metadata в виде строки с пользовательскими метаданными. Если в значении несколько строк, используйте \n в качестве разделителя. Например:

    ...
    metadata = {
      user-data = "#cloud-config\nusers:\n  - name: <имя_пользователя>\n    groups: sudo\n    shell: /bin/bash\n    sudo: 'ALL=(ALL) NOPASSWD:ALL'\n    ssh_authorized_keys:\n      - <содержимое_SSH-ключа>"
    }
    ...
    
  • Только для ВМ Linux. В блоке ssh-keys указывается имя пользователя и SSH-ключ для доступа на ВМ Linux. Укажите имя пользователя и содержимое SSH-ключа в виде:

    ...
    metadata = {
      ssh-keys = "<имя_пользователя>:<содержимое_SSH-ключа>"
    }
    ...
    

    Если вы используете готовый публичный образ из Yandex Cloud Marketplace, указанное имя пользователя не играет роли. Ключ будет присвоен пользователю, который задан в конфигурации cloud-init по умолчанию. В разных образах это разные пользователи.

    Если вы не знаете, какой пользователь задан по умолчанию, найдите в выводе последовательного порта строку, содержащую слова Authorized keys from. В ней будет указано имя пользователя, которому присвоены авторизованные ключи.

    Если такой строки не найдено, но есть строка no authorized ssh keys fingerprints found for user, значит вы неправильно передали SSH-ключ. Проверьте еще раз формат или попробуйте передать ключи SSH в поле user-data.

В API вы указываете метаданные в свойстве metadata в виде JSON-объекта, например так:

"metadata": {
  "ssh-keys": "ssh-ed25519 AAAAB3Nza... user@example.com",
  "serial-port-enable": "1"
}

Для переноса строки в значениях используйте символ \n.

Важно

Метаданные, в том числе пользовательские, доступны в незашифрованном виде. Если вы размещаете в метаданных конфиденциальную информацию, примите меры для ее защиты — например, зашифруйте.

Удалить SSH-ключи из метаданныхУдалить SSH-ключи из метаданных

Консоль управления
CLI
API
  1. В консоли управления выберите каталог, которому принадлежит ВМ.
  2. В списке сервисов выберите Compute Cloud.
  3. На панели слева выберите Виртуальные машины.
  4. В строке с нужной ВМ нажмите значок и выберите Редактировать.
  5. Раскройте секцию Метаданные и удалите ключи, нажав .
  6. Нажмите Сохранить изменения.

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

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

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

    yc compute instance remove-metadata --help
    
  2. Удалите ключи:

    yc compute instance remove-metadata <идентификатор_ВМ> --keys <имя_SSH-ключа>
    

Чтобы удалить SSH-ключи из метаданных ВМ, воспользуйтесь методом REST API updateMetadata для ресурса Instance или вызовом gRPC API InstanceService/UpdateMetadata.

В запросе передайте параметр delete с SSH-ключом.

Пример запроса для REST API

curl \
  --request POST \
  --header "Authorization: Bearer <IAM-токен>" \
  --data '{"delete":["<имя_SSH-ключа>"]}' \
  https://compute.api.cloud.yandex.net/compute/v1/instances/<идентификатор_ВМ>/updateMetadata

Включить доступ по OS LoginВключить доступ по OS Login

Чтобы к ВМ можно было подключиться по OS Login, необходимо включить эту опцию в ее настройках:

Консоль управления
CLI
API
  1. В консоли управления выберите каталог, которому принадлежит ВМ.
  2. В списке сервисов выберите Compute Cloud.
  3. На панели слева выберите Виртуальные машины.
  4. В строке с нужной ВМ нажмите значок и выберите Редактировать.
  5. В блоке Доступ выберите вариант Доступ по OS Login.
  6. Нажмите Сохранить изменения.

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

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

  1. Посмотрите описание команды CLI для обновления параметров ВМ:

    yc compute instance update --help
    
  2. Получите список ВМ в каталоге по умолчанию:

    yc compute instance list
    

    Результат:

    +----------------------+-----------------+---------------+---------+----------------------+
    |          ID          |       NAME      |    ZONE ID    | STATUS  |     DESCRIPTION      |
    +----------------------+-----------------+---------------+---------+----------------------+
    | fhm0b28lgfp4******** | first-instance  | ru-central1-a | RUNNING | my first vm via CLI  |
    | fhm9gk85nj7g******** | second-instance | ru-central1-a | RUNNING | my second vm via CLI |
    +----------------------+-----------------+---------------+---------+----------------------+
    
  3. Выберите идентификатор (ID) или имя (NAME) нужной машины, например first-instance.

  4. Включите доступ по OS Login:

    yc compute instance update first-instance \
      --metadata enable-oslogin=true
    

Передайте в поле metadata пару enable-oslogin=true в методе REST API update для ресурса Instance или в вызове gRPC API InstanceService/Update.

Примечание

Для пользователей, добавленных через метаданные:

  • после включения доступа к ВМ по OS Login из метаданных удаляются ключи, указанные в user-data и ssh-keys;
  • после отключения доступа к ВМ по OS Login удаленные ключи пересоздаются.

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

Предыдущая
Изменить внутренний IP-адрес ВМ
Следующая
Изменить вычислительные ресурсы ВМ
Проект Яндекса
© 2025 ООО «Яндекс.Облако»