Начало работы с серийной консолью
Серийная консоль — это способ получить доступ к виртуальной машине вне зависимости от состояния сети или операционной системы. Таким образом, вы можете использовать консоль, например, для устранения неисправностей ВМ или при возникновении проблем с доступом через SSH.
Для работы с серийной консолью необходима роль сompute.admin
или editor
.
По умолчанию доступ к серийной консоли отключен.
Важно
Оцените риск включения доступа через серийную консоль, учитывая следующие факторы:
-
ВМ будет доступна для управления из интернета даже в случае отсутствия внешнего IP-адреса.
Получить доступ к серийной консоли ВМ из консоли управления Yandex Cloud сможет пользователь, успешно аутентифицированный в консоли управления Yandex Cloud при наличии должных прав на ВМ. Доступ к серийной консоли ВМ из клиентского приложения SSH (например, Putty) или YC CLI также возможен путем аутентификации через SSH-ключ. В связи с этим необходимо тщательно контролировать SSH-ключ и завершать веб-сессию для снижения рисков ее перехвата. -
Сессия будет доступна одновременно всем пользователям, имеющим право доступа к серийной консоли.
Действия одного пользователя будут видны другим пользователям, если в это время они смотрят вывод серийной консоли. -
Незавершенная сессия может быть использована другим пользователем.
Мы рекомендуем включать серийную консоль только в случае крайней необходимости, выдавать такой доступ узкому кругу лиц и использовать стойкие пароли для доступа к ВМ.
Не забывайте отключать доступ после работы с серийной консолью.
Перед началом работы
Перед тем, как включить доступ к серийной консоли на ВМ:
-
Подготовьте пару ключей (открытый и закрытый) для SSH-доступа на ВМ. Серийная консоль аутентифицирует пользователей с помощью SSH-ключей.
-
Создайте текстовый файл (например,
sshkeys.txt
) и укажите следующие данные:<имя_пользователя>:<открытый_SSH-ключ_пользователя>
Пример текстового файла для пользователя
yc-user
:yc-user:ssh-ed25519 AAAAB3Nza......OjbSMRX yc-user@example.com
По умолчанию пользовательские SSH-ключи хранятся в каталоге
~/.ssh
этого пользователя. Получить открытый ключ можно с помощью командыcat ~/.ssh/<имя_открытого_ключа>.pub
.
Включение консоли при создании ВМ из публичного образа
Чтобы включить доступ к серийной консоли при создании ВМ, установите в метаданных параметр serial-port-enable
в значение 1
.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания ВМ:
yc compute instance create --help
-
Выберите один из публичных образов на базе ОС Linux (например, Ubuntu).
Чтобы получить список доступных образов с помощью CLI, выполните команду:
yc compute image list --folder-id standard-images
Результат:
+----------------------+-------------------------------------+--------------------------+----------------------+--------+ | ID | NAME | FAMILY | PRODUCT IDS | STATUS | +----------------------+-------------------------------------+--------------------------+----------------------+--------+ ... | fdvk34al8k5n******** | centos-7-1549279494 | centos-7 | dqni65lfhvv2******** | READY | | fdv7ooobjfl3******** | windows-2016-gvlk-1548913814 | windows-2016-gvlk | dqnnc72gj2is******** | READY | | fdv4f5kv5cvf******** | ubuntu-1604-lts-1549457823 | ubuntu-1604-lts | dqnnb6dc7640******** | READY | ... +----------------------+-------------------------------------+--------------------------+----------------------+--------+
Где:
-
ID
— идентификатор образа. -
NAME
— имя образа. -
FAMILY
— идентификатор семейства образов, к которому относится образ. -
PRODUCT IDS
— идентификаторы продуктов Yandex Cloud Marketplace, связанных с образом. -
STATUS
— текущий статус образа. Может принимать одно из значений:STATUS_UNSPECIFIED
— статус образа не определен.CREATING
— образ в процессе создания.READY
— образ готов к использованию.ERROR
— образ нельзя использовать из-за возникшей с ним проблемы.DELETING
— образ в процессе удаления.
-
-
Создайте ВМ в каталоге по умолчанию:
yc compute instance create \ --name first-instance \ --zone ru-central1-a \ --network-interface subnet-name=default-a,nat-ip-version=ipv4 \ --create-boot-disk image-folder-id=standard-images,image-family=ubuntu-1604-lts \ --metadata-from-file ssh-keys=sshkeys.txt \ --metadata serial-port-enable=1
Команда создаст ВМ:
- С OC Ubuntu.
- С именем
first-instance
. - В зоне доступности
ru-central1-a
. - С активной серийной консолью.
В ОС ВМ будет автоматически создан пользователь
yc-user
с указанным открытым ключом.
Включение консоли при изменении ВМ
Чтобы включить доступ к серийной консоли при изменении ВМ, установите в метаданных параметр serial-port-enable
в значение 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 | +----------------------+-----------------+---------------+---------+----------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужной ВМ, напримерfirst-instance
. -
Установите в метаданных ВМ параметр
serial-port-enable=1
:yc compute instance add-metadata \ --name first-instance \ --metadata-from-file ssh-keys=sshkeys.txt \ --metadata serial-port-enable=1
Команда запустит операцию активации серийной консоли на ВМ с именем
first-instance
.
Настройка ВМ для доступа через серийный порт
Для настройки доступа через серийную консоль у ВМ должен быть публичный IP-адрес. Вы можете посмотреть адрес в консоли управления
Чтобы серийная консоль была доступна со стороны ОС, ОС должна быть настроена соответствующим образом:
Linux
Чтобы подключаться к серийной консоли Linux, убедитесь, что отключена парольная аутентификация для SSH, и при необходимости задайте пароль для нужного пользователя ОС.
Отключите SSH-аутентификацию по паролю
Примечание
В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
Если вы используете собственный образ, убедитесь, что доступ по SSH с использованием логина и пароля отключен.
Чтобы отключить парольную аутентификацию по SSH:
-
Откройте файл конфигурации SSH-сервера, по умолчанию
/etc/ssh/sshd_config
. Файл доступен для чтения и редактирования только суперпользователю. -
Задайте для опции
PasswordAuthentication
значениеno
. -
Перезапустите SSH-сервер:
sudo systemctl restart ssh*
Создайте пароль для пользователя Linux
Некоторые ОС могут запрашивать данные пользователя для доступа на ВМ. Поэтому перед подключением к таким ВМ необходимо создать локальный пароль для пользователя по умолчанию.
Чтобы создать локальный пароль, используйте CLI.
-
Получите список ВМ в каталоге по умолчанию:
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 | +----------------------+-----------------+---------------+---------+----------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужной ВМ, напримерfirst-instance
. -
Получите публичный IP-адрес ВМ.
yc compute instance get first-instance
В выводе команды найдите адрес ВМ в блоке
one_to_one_nat
:... one_to_one_nat: address: <публичный_IP-адрес> ip_version: IPV4 ...
-
Подключитесь к ВМ. Подробнее читайте в разделе Подключение к ВМ.
-
Создайте локальный пароль. В OC Linux задать пароль можно с помощью команды
passwd
:sudo passwd <имя_пользователя>
Пример для пользователя
yc-user
:sudo passwd yc-user
-
Завершите SSH-сессию с помощью команды
exit
.