Подключиться к серийной консоли виртуальной машины с ОС Linux
Важно
Оцените риск разрешения доступа к ВМ через серийную консоль, учитывая следующие факторы:
-
ВМ будет доступна для управления из интернета даже при отсутствии у нее внешнего IP-адреса.
При наличии необходимых прав доступа к ВМ подключиться к серийной консоли сможет пользователь, успешно аутентифицированный в консоли управления
Yandex Cloud.Доступ к серийной консоли ВМ из клиентского приложения SSH (например, Putty) или CLI также возможен путем аутентификации с помощью SSH-ключа. Поэтому необходимо защитить SSH-ключ от несанкционированного доступа, а также всегда завершать веб-сессию для снижения рисков ее перехвата.
-
Сессия работы с серийной консолью будет доступна одновременно всем пользователям, имеющим право доступа к серийной консоли. Действия одного пользователя будут видны другим пользователям, если в это время они просматривают вывод серийной консоли.
-
Незавершенная сессия работы с серийной консолью может быть использована другим пользователем.
Мы рекомендуем разрешать доступ к серийной консоли только в случае крайней необходимости, выдавать такой доступ узкому кругу доверенных лиц и использовать стойкие пароли для доступа к ВМ.
После завершения использования серийной консоли не забудьте запретить доступ к ней.
Чтобы подключиться к серийной консоли ВМ, для этой виртуальной машины необходимо предварительно разрешить доступ к серийной консоли.
Вы можете подключиться к серийной консоли с помощью консоли управления
Перед подключением к серийной консоли внимательно ознакомьтесь с разделом Безопасность при использовании SSH.
Перед началом работы
Некоторые операционные системы для доступа на ВМ через серийную консоль могут запрашивать данные локального пользователя. Поэтому перед подключением к серийной консоли необходимо задать локальный пароль пользователя.
В примере ниже вы создадите учетную запись нового локального пользователя Linux с парольной защитой:
-
Подключитесь к виртуальной машине по SSH или по OS Login.
-
Создайте учетную запись нового локального пользователя, защищенную паролем:
export NEW_USERNAME=<имя_нового_пользователя> sudo useradd -m -d /home/$NEW_USERNAME -s /bin/bash $NEW_USERNAME \ && sudo passwd $NEW_USERNAMEВ результате система запросит ввести и подтвердить пароль нового пользователя:
New password: Retype new password: passwd: password updated successfully
Важно
Работа серийной консоли зависит от настроек используемой операционной системы. Сервис Yandex Compute Cloud обеспечивает канал между пользователем и COM-портом виртуальной машины и не гарантирует стабильность работы консоли со стороны ОС.
Подключиться с помощью консоли управления
-
В консоли управления
выберите каталог, в котором находится виртуальная машина. -
Перейдите в сервис Compute Cloud.
-
На панели слева выберите
Виртуальные машины и в открывшемся списке выберите нужную виртуальную машину. -
В меню слева выберите Серийная консоль.
-
В верхней части экрана в раскрывающемся списке выберите последовательный порт, используемый серийной консолью для подключения к ВМ.
По умолчанию на ВМ с ОС Linux используется последовательный порт
COM1. Чтобы использовать другой порт, самостоятельно настройте его на стороне операционной системы вашей виртуальной машины. -
В открывшемся окне серийной консоли введите имя пользователя и пароль, заданные ранее.
Важно
После завершения использования серийной консоли не забудьте запретить доступ к ней.
Подключиться с помощью стандартного SSH-клиента
Внимание
Для подключения к серийной консоли виртуальной машины по SSH можно использовать только SSH-ключ, не защищенный паролем. В противном случае соединение будет разорвано после ввода пароля.
Убедитесь, что на вашем компьютере установлен и настроен интерфейс Yandex Cloud CLI.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Дальнейший порядок действий по подключению зависит от того, включен ли для ВМ доступ по OS Login. Если для ВМ включен доступ по OS Login, подключиться к серийной консоли можно с использованием экспортированного SSH-сертификата. Для подключения к ВМ с выключенным доступом по OS Login используются SSH-ключи.
-
Включите авторизацию по метаданным при подключении к серийной консоли:
yc compute instance update <имя_или_идентификатор_ВМ> \ --serial-port-settings ssh-authorization=INSTANCE_METADATA \ --metadata enable-oslogin=false,serial-port-enable=1,ssh-keys='<имя_пользователя>:<публичный_SSH-ключ>'Где:
-
<имя_или_идентификатор_ВМ>— о том, как узнать имя или идентификатор ВМ, читайте в разделе Получить информацию о виртуальной машине. -
--metadata— метаданные виртуальной машины:ssh-keys— имя локального пользователя ВМ и содержимое публичного SSH-ключа, с которым этот пользователь сможет подключаться к ВМ по SSH.
Результат:
done (6s) id: fhm0b28lgfp4******** folder_id: b1g9d2k0itu4******** created_at: "2024-03-28T19:53:23Z" name: first-instance zone_id: ru-central1-a platform_id: standard-v3 resources: memory: "1073741824" cores: "2" core_fraction: "20" status: RUNNING metadata_options: gce_http_endpoint: ENABLED aws_v1_http_endpoint: ENABLED gce_http_token: ENABLED aws_v1_http_token: DISABLED boot_disk: mode: READ_WRITE device_name: epdu3ce920e7******** auto_delete: true disk_id: epdu3ce920e7******** network_interfaces: - index: "0" mac_address: d0:0d:5c:**:**:** subnet_id: e2luhnr3rhf8******** primary_v4_address: address: 192.168.1.21 one_to_one_nat: address: 51.250.***.*** ip_version: IPV4 security_group_ids: - enpjauvetqfb******** serial_port_settings: ssh_authorization: INSTANCE_METADATA gpu_settings: {} fqdn: sample-vm.ru-central1.internal scheduling_policy: preemptible: true network_settings: type: STANDARD placement_policy: {} hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1Подробнее о команде
yc compute instance updateчитайте в справочнике CLI.Примечание
Если на уровне организации включен доступ по OS Login, то для новых ВМ, создаваемых в этой организации, полю
serial_port_settings.ssh_authorizationпо умолчанию будет присваиваться значениеOS_LOGIN. Если доступ по OS Login в организации выключен, этому полю по умолчанию будет присваиваться значениеINSTANCE_METADATA. -
-
Подключитесь к серийной консоли виртуальной машины:
ssh -t \ -p 9600 \ -o IdentitiesOnly=yes \ -i <путь_к_закрытому_SSH-ключу> \ <идентификатор_ВМ>.<имя_пользователя>.port=1@serialssh.cloud.yandex.netГде:
-
путь_к_закрытому_SSH-ключу— путь к закрытой части SSH-ключа, который вы используете для подключения к ВМ. -
идентификатор_ВМ— идентификатор виртуальной машины. -
имя_пользователя— имя пользователя для подключения по SSH, указанное в метаданных ВМ. -
port=1— номер последовательного порта, используемого серийной консолью для подключения к ВМ.По умолчанию на ВМ с ОС Linux используется последовательный порт
COM1. Чтобы использовать другой порт, самостоятельно настройте его на стороне операционной системы вашей виртуальной машины.
При подключении система может запросить логин и пароль для аутентификации на ВМ. Введите созданные ранее логин и пароль, после чего вы получите доступ к виртуальной машине.
-
-
Завершите работу с серийной консолью:
-
Выйдите из профиля локального пользователя операционной системы:
exit -
Закройте сеанс работы с серийной консолью. Для этого введите следующую последовательность символов:
~.
-
-
Включите авторизацию по OS Login при подключении к серийной консоли:
yc compute instance update <имя_или_идентификатор_ВМ> \ --serial-port-settings ssh-authorization=OS_LOGIN \ --metadata enable-oslogin=true,serial-port-enable=1,ssh-keys='<имя_пользователя>:<публичный_SSH-ключ>'Где:
-
<имя_или_идентификатор_ВМ>— о том, как узнать имя или идентификатор ВМ, читайте в разделе Получить информацию о виртуальной машине. -
--metadata— метаданные виртуальной машины:ssh-keys— имя локального пользователя ВМ и содержимое публичного SSH-ключа, с которым этот пользователь сможет подключаться к ВМ по SSH в случае, если доступ по OS Login для этой ВМ позднее будет отключен.
Результат:
done (6s) id: fhm0b28lgfp4******** folder_id: b1g9d2k0itu4******** created_at: "2024-03-28T19:53:23Z" name: first-instance zone_id: ru-central1-a platform_id: standard-v3 resources: memory: "1073741824" cores: "2" core_fraction: "20" status: RUNNING metadata_options: gce_http_endpoint: ENABLED aws_v1_http_endpoint: ENABLED gce_http_token: ENABLED aws_v1_http_token: DISABLED boot_disk: mode: READ_WRITE device_name: epdu3ce920e7******** auto_delete: true disk_id: epdu3ce920e7******** network_interfaces: - index: "0" mac_address: d0:0d:5c:**:**:** subnet_id: e2luhnr3rhf8******** primary_v4_address: address: 192.168.1.21 one_to_one_nat: address: 51.250.***.*** ip_version: IPV4 security_group_ids: - enpjauvetqfb******** serial_port_settings: ssh_authorization: OS_LOGIN gpu_settings: {} fqdn: sample-vm.ru-central1.internal scheduling_policy: preemptible: true network_settings: type: STANDARD placement_policy: {} hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1Подробнее о команде
yc compute instance updateчитайте в справочнике CLI.Примечание
Если на уровне организации включен доступ по OS Login, то для новых ВМ, создаваемых в этой организации, полю
serial_port_settings.ssh_authorizationпо умолчанию будет присваиваться значениеOS_LOGIN. Если доступ по OS Login в организации выключен, этому полю по умолчанию будет присваиваться значениеINSTANCE_METADATA. -
-
Экспортируйте сертификат OS Login, указав идентификатор вашей организации:
yc compute ssh certificate export \ --organization-id <идентификатор_организации>Результат:
Identity: /home/myuser/.ssh/yc-organization-id-bpfaidqca8vd********-yid-orgusername Certificate: /home/myuser/.ssh/yc-organization-id-bpfaidqca8vd********-yid-orgusername-cert.pubЭкспортированный сертификат действителен один час.
-
Подключитесь к серийной консоли виртуальной машины:
ssh -t \ -p 9600 \ -i <путь_к_SSH-сертификату> \ <идентификатор_ВМ>.<логин_пользователя_OS_Login>.port=1@serialssh.cloud.yandex.netГде:
-
<путь_к_SSH-сертификату>— путь к экспортированному ранее SSH-сертификату (Identity). -
<идентификатор_ВМ>— идентификатор виртуальной машины. -
<имя_пользователя_OS_Login>— логин пользователя OS Login в организации. Логин пользователя OS Login указан в конце имени экспортированного сертификата после идентификатора организации.Также логин пользователя можно получить с помощью команды
yc organization-manager os-login profile listYandex Cloud CLI или в интерфейсе Cloud Center в профиле пользователя на вкладке Профили OS Login.Примечание
Минимально необходимая роль, позволяющая просматривать список профилей OS Login пользователей — роль
organization-manager.osLogins.viewer, назначенная на организацию. Информацию о других ролях, позволяющих просматривать список профилей OS Login, см. в разделе Управление доступом в Yandex Identity Hub. -
port=1— номер последовательного порта, используемого серийной консолью для подключения к ВМ.По умолчанию на ВМ с ОС Linux используется последовательный порт
COM1. Чтобы использовать другой порт, самостоятельно настройте его на стороне операционной системы вашей виртуальной машины.
При подключении система может запросить логин и пароль для аутентификации на ВМ. Введите созданные ранее логин и пароль, после чего вы получите доступ к виртуальной машине.
-
-
Завершите работу с серийной консолью:
-
Выйдите из профиля локального пользователя операционной системы:
exit -
Закройте сеанс работы с серийной консолью. Для этого введите следующую последовательность символов:
~.
-
Важно
После завершения использования серийной консоли не забудьте запретить доступ к ней.
Подключиться с помощью Yandex Cloud CLI
Внимание
Для подключения к серийной консоли виртуальной машины по SSH можно использовать только SSH-ключ, не защищенный паролем. В противном случае соединение будет разорвано после ввода пароля.
Убедитесь, что на вашем компьютере установлен и настроен интерфейс Yandex Cloud CLI.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Дальнейший порядок действий по подключению зависит от того, включен ли для ВМ доступ по OS Login. Если для ВМ включен доступ по OS Login, подключение к серийной консоли происходит с использованием короткоживущих SSH-сертификатов. Для подключения к ВМ с выключенным доступом по OS Login используются SSH-ключи.
-
Посмотрите описание команды CLI для подключения к серийной консоли:
yc compute connect-to-serial-port --help -
Включите авторизацию по метаданным при подключении к серийной консоли:
yc compute instance update <имя_или_идентификатор_ВМ> \ --serial-port-settings ssh-authorization=INSTANCE_METADATA \ --metadata enable-oslogin=false,serial-port-enable=1,ssh-keys='<имя_пользователя>:<публичный_SSH-ключ>'Где:
-
<имя_или_идентификатор_ВМ>— о том, как узнать имя или идентификатор ВМ, читайте в разделе Получить информацию о виртуальной машине. -
--metadata— метаданные виртуальной машины:ssh-keys— имя локального пользователя ВМ и содержимое публичного SSH-ключа, с которым этот пользователь сможет подключаться к ВМ по SSH.
Результат:
done (6s) id: fhm0b28lgfp4******** folder_id: b1g9d2k0itu4******** created_at: "2024-03-28T19:53:23Z" name: first-instance zone_id: ru-central1-a platform_id: standard-v3 resources: memory: "1073741824" cores: "2" core_fraction: "20" status: RUNNING metadata_options: gce_http_endpoint: ENABLED aws_v1_http_endpoint: ENABLED gce_http_token: ENABLED aws_v1_http_token: DISABLED boot_disk: mode: READ_WRITE device_name: epdu3ce920e7******** auto_delete: true disk_id: epdu3ce920e7******** network_interfaces: - index: "0" mac_address: d0:0d:5c:**:**:** subnet_id: e2luhnr3rhf8******** primary_v4_address: address: 192.168.1.21 one_to_one_nat: address: 51.250.***.*** ip_version: IPV4 security_group_ids: - enpjauvetqfb******** serial_port_settings: ssh_authorization: INSTANCE_METADATA gpu_settings: {} fqdn: sample-vm.ru-central1.internal scheduling_policy: preemptible: true network_settings: type: STANDARD placement_policy: {} hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1Подробнее о команде
yc compute instance updateчитайте в справочнике CLI.Примечание
Если на уровне организации включен доступ по OS Login, то для новых ВМ, создаваемых в этой организации, полю
serial_port_settings.ssh_authorizationпо умолчанию будет присваиваться значениеOS_LOGIN. Если доступ по OS Login в организации выключен, этому полю по умолчанию будет присваиваться значениеINSTANCE_METADATA. -
-
Подключитесь к серийной консоли виртуальной машины:
yc compute connect-to-serial-port \ --instance-name <имя_ВМ> \ --ssh-key <путь_к_закрытому_SSH-ключу> \ --port 1Где:
-
--instance-name— имя виртуальной машины. Вместо имени ВМ вы можете передать ее идентификатор в параметре--instance-id. -
--ssh-key— путь к закрытому ключу для SSH-доступа к ВМ, например~/.ssh/id_ed25519. -
--port— номер последовательного порта, используемого серийной консолью для подключения к ВМ.По умолчанию на ВМ с ОС Linux используется последовательный порт
COM1. Чтобы использовать другой порт, самостоятельно настройте его на стороне операционной системы вашей виртуальной машины.
При подключении система может запросить логин и пароль для аутентификации на ВМ. Введите созданные ранее логин и пароль, после чего вы получите доступ к виртуальной машине.
Подробнее о команде
yc compute connect-to-serial-portчитайте в справочнике CLI. -
-
Завершите работу с серийной консолью:
-
Выйдите из профиля локального пользователя операционной системы:
exit -
Закройте сеанс работы с серийной консолью. Для этого введите следующую последовательность символов:
~.
-
-
Посмотрите описание команды CLI для подключения к серийной консоли:
yc compute connect-to-serial-port --help -
Включите авторизацию по OS Login при подключении к серийной консоли:
yc compute instance update <имя_или_идентификатор_ВМ> \ --serial-port-settings ssh-authorization=OS_LOGIN \ --metadata enable-oslogin=true,serial-port-enable=1,ssh-keys='<имя_пользователя>:<публичный_SSH-ключ>'Где:
-
<имя_или_идентификатор_ВМ>— о том, как узнать имя или идентификатор ВМ, читайте в разделе Получить информацию о виртуальной машине. -
--metadata— метаданные виртуальной машины:ssh-keys— имя локального пользователя ВМ и содержимое публичного SSH-ключа, с которым этот пользователь сможет подключаться к ВМ по SSH в случае, если доступ по OS Login для этой ВМ позднее будет отключен.
Результат:
done (6s) id: fhm0b28lgfp4******** folder_id: b1g9d2k0itu4******** created_at: "2024-03-28T19:53:23Z" name: first-instance zone_id: ru-central1-a platform_id: standard-v3 resources: memory: "1073741824" cores: "2" core_fraction: "20" status: RUNNING metadata_options: gce_http_endpoint: ENABLED aws_v1_http_endpoint: ENABLED gce_http_token: ENABLED aws_v1_http_token: DISABLED boot_disk: mode: READ_WRITE device_name: epdu3ce920e7******** auto_delete: true disk_id: epdu3ce920e7******** network_interfaces: - index: "0" mac_address: d0:0d:5c:**:**:** subnet_id: e2luhnr3rhf8******** primary_v4_address: address: 192.168.1.21 one_to_one_nat: address: 51.250.***.*** ip_version: IPV4 security_group_ids: - enpjauvetqfb******** serial_port_settings: ssh_authorization: OS_LOGIN gpu_settings: {} fqdn: sample-vm.ru-central1.internal scheduling_policy: preemptible: true network_settings: type: STANDARD placement_policy: {} hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1Подробнее о команде
yc compute instance updateчитайте в справочнике CLI.Примечание
Если на уровне организации включен доступ по OS Login, то для новых ВМ, создаваемых в этой организации, полю
serial_port_settings.ssh_authorizationпо умолчанию будет присваиваться значениеOS_LOGIN. Если доступ по OS Login в организации выключен, этому полю по умолчанию будет присваиваться значениеINSTANCE_METADATA. -
-
Подключитесь к серийной консоли виртуальной машины:
yc compute connect-to-serial-port \ --instance-name <имя_ВМ> \ --port 1Где:
-
--instance-name— имя виртуальной машины. Вместо имени ВМ можно передать ее идентификатор в параметре--instance-id. -
--port— номер последовательного порта, используемого серийной консолью для подключения к ВМ.По умолчанию на ВМ с ОС Linux используется последовательный порт
COM1. Чтобы использовать другой порт, самостоятельно настройте его на стороне операционной системы вашей виртуальной машины.
При подключении система может запросить логин и пароль для аутентификации на ВМ. Введите созданные ранее логин и пароль, после чего вы получите доступ к виртуальной машине.
Подробнее о команде
yc compute connect-to-serial-portчитайте в справочнике CLI. -
-
Завершите работу с серийной консолью:
-
Выйдите из профиля локального пользователя операционной системы:
exit -
Закройте сеанс работы с серийной консолью. Для этого введите следующую последовательность символов:
~.
-
Важно
После завершения использования серийной консоли не забудьте запретить доступ к ней.
Решение проблем при подключении
- Если после подключения к серийной консоли на экране ничего не отображается:
- Нажмите на клавиатуре клавишу Enter.
- Перезапустите ВМ (для ВМ, созданных до 22 февраля 2019 года).
- Если при подключении с помощью SSH-ключа возникает ошибка
Warning: remote host identification has changed!, выполните командуssh-keygen -R <IP-адрес_ВМ>. - Если при подключении с помощью SSH-сертификата возникает ошибка
Permission denied (publickey)., убедитесь, что для ВМ включена авторизация по OS Login при подключении к серийной консоли, а сертификат — не просрочен. При необходимости включите для ВМ авторизацию по OS Login при подключении к серийной консоли или повторно экспортируйте SSH-сертификат. - Если при подключении с помощью SSH-сертификата возникает ошибка
Connection closed by 2a0d:d6c1:0:**::*** port 9600, на локальной машине откройте файлknown_hostsи удалите все строки, которые начинаются с[serialssh.cloud.yandex.net]:9600. Затем повторите подключение и на вопросAre you sure you want to continue connecting (yes/no/[fingerprint])?ответьтеyes.