[Документация Yandex Cloud](../../../index.md) > [Все решения](../../index.md) > [Compute Cloud](../index.md) > Восстановление доступа к виртуальной машине с утерянным SSH-ключом

# Восстановление доступа к виртуальной машине с утерянным SSH-ключом


## Описание проблемы {#issue-description}

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

## Решение проблемы {#issue-resolution}

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

{% list tabs %}

- Через metadata (cloud-init) {selected}

  Если виртуальная машина создана из публичного образа и внутри нее используется `cloud-init`, вы можете восстановить доступ без создания снимков и выполнения `chroot`:

  1. Добавьте новый публичный SSH-ключ в метаданные ВМ в ключ `user-data` в формате `#cloud-config` (смотрите [Ключи, обрабатываемые в публичных образах](../../../compute/concepts/metadata/public-image-keys.md)).
  1. Перезагрузите ВМ.

  Пример `user-data` (добавляет пользователя `rescue` с вашим публичным ключом и правами `sudo`):

  ```yaml
  #cloud-config
  users:
    - name: rescue
      groups: sudo
      sudo: ['ALL=(ALL) NOPASSWD:ALL']
      ssh_authorized_keys:
        - ssh-ed25519 AAAA...your_public_key... comment
  ```

  {% note warning %}

  При изменении метаданных значение `user-data` перезаписывается целиком. Если вы описываете пользователей через `user-data`, укажите в нем данные **всех** нужных пользователей, чтобы не потерять доступ к ранее созданным.
  
  {% endnote %}

  Подробнее смотрите [Изменение метаданных виртуальной машины](../../../compute/operations/vm-metadata/update-vm-metadata.md).

- Из снимка диска

  Если пароль для пользователя Linux не был установлен, вы можете [создать снимок диска](../../../compute/operations/disk-control/create-snapshot.md) проблемной виртуальной машины, после чего создать новую ВМ из данного снимка, выбрав на странице создания ВМ **Добавить диск** → **Снимок**.

  Если описанный выше способ не решил проблему, выполните следующие действия:

  1. Cоздайте новый диск из снимка проблемной ВМ.
  1. Подключите его в качестве дополнительного диска к другой ВМ.
  1. Измените корневой каталог, используя `chroot`.
  1. Измените файлы конфигураций, влияющие на недоступность ВМ, например, задайте новый пароль с помощью команды `sudo passwd $USERNAME`, где `$USERNAME` — имя пользователя Linux, для которого требуется задать пароль.
  1. Отключите дополнительный диск от вспомогательной ВМ и создайте из него новую ВМ, используя измененный диск в качестве загрузочного.

- Серийная консоль

  Если ранее внутри ВМ вы устанавливали пароль для пользователя Linux, вы можете воспользоваться серийной консолью. Для настройки воспользуйтесь [инструкцией из документации](../../../compute/operations/serial-console/index.md).

  После активации серийной консоли подключитесь к виртуальной машине. Мы рекомендуем использовать [способ подключения с помощью CLI](../../../compute/operations/serial-console/connect-ssh.md#connect-with-yc-cli).

{% endlist %}