Подключиться к виртуальной машине по OS Login
OS Login используется для предоставления пользователям доступа к ВМ по SSH c помощью IAM. Для доступа к ВМ, которая поддерживает OS Login на уровне операционной системы, назначьте пользователю роль compute.osLogin
или compute.osAdminLogin
.
Перед началом работы
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
При необходимости создайте новую виртуальную машину с поддержкой OS Login или настройте доступ по OS Login для существующей ВМ.
Подключиться к ВМ по OS Login c SSH-сертификатом через YC CLI
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login c SSH-сертификатом через YC CLI, включите опцию Доступ по OS Login при помощи SSH-сертификатов (рекомендуется).
-
Посмотрите описание команды CLI для подключения к ВМ:
yc compute ssh --help
-
Получите список всех ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+----------------------+ | ID | NAME | ZONE ID | STATUS | DESCRIPTION | +----------------------+-----------------+---------------+---------+----------------------+ | fhm0b28lgf********** | first-instance | ru-central1-a | RUNNING | my first vm via CLI | | fhm9gk85nj********** | second-instance | ru-central1-a | RUNNING | my second vm via CLI | +----------------------+-----------------+---------------+---------+----------------------+
-
Подключитесь к ВМ, указав ее имя. Команда для подключения зависит от версии ОС Linux, установленной на виртуальной машине:
-
Debian, Ubuntu 20.04+
yc compute ssh \ --name <имя_ВМ>
При подключении по OS Login вместо имени ВМ можно указать ее идентификатор:
yc compute ssh \ --id <идентификатор_ВМ>
-
CentOS 7, Ubuntu 18.04
yc compute ssh \ --name <имя_ВМ> \ -o "PubkeyAcceptedKeyTypes=+ssh-rsa-cert-v01@openssh.com"
При подключении по OS Login вместо имени ВМ можно указать ее идентификатор:
yc compute ssh \ --id <идентификатор_ВМ> \ -o "PubkeyAcceptedKeyTypes=+ssh-rsa-cert-v01@openssh.com"
-
Подключиться к ВМ по OS Login с SSH-сертификатом через стандартный SSH-клиент
Подключиться к виртуальной машине с включенным доступом по OS Login можно с помощью стандартного SSH-клиента. Для этого экспортируйте сертификат OS Login на локальный компьютер и укажите этот сертификат при подключении:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-сертификатом через стандартный SSH-клиент, включите опцию Доступ по OS Login при помощи SSH-сертификатов (рекомендуется).
-
Получите список всех ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+---------------+--------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+-----------------+---------------+---------+---------------+--------------+ | fhm0b28lgf********** | first-instance | ru-central1-a | RUNNING | 158.160.**.** | 192.168.0.8 | | fhm9gk85nj********** | second-instance | ru-central1-a | RUNNING | 51.250.**.*** | 192.168.0.12 | +----------------------+-----------------+---------------+---------+---------------+--------------+
-
Получите публичный адрес нужной ВМ, указав ее идентификатор:
yc compute instance get \ --id <идентификатор_ВМ>
Результат:id: fhm0b28lgf********** folder_id: b1gt6g8ht345******** created_at: "2023-12-09T06:23:04Z" name: first-instance zone_id: ru-central1-a platform_id: standard-v3 resources: memory: "2147483648" cores: "2" core_fraction: "100" 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: epd9m2csd95p******** auto_delete: true disk_id: epd9m2csd95p******** network_interfaces: - index: "0" mac_address: d0:0d:87:75:**:** subnet_id: e2li9tcgi7ii******** primary_v4_address: address: 192.168.0.8 one_to_one_nat: address: 158.160.**.** ip_version: IPV4 gpu_settings: {} fqdn: first-instance.ru-central1.internal scheduling_policy: {} network_settings: type: STANDARD placement_policy: {}
Публичный адрес виртуальной машины указан в поле
network_interfaces.primary_v4_address.one_to_one_nat.address
. -
Подключитесь к ВМ:
ssh -i <путь_к_файлу_сертификата> <имя_пользователя>@<публичный_IP-адрес_ВМ>
Где:
<путь_к_файлу_сертификата>
— путь к сохраненному ранее файлуIdentity
сертификата. Например:/home/user1/.ssh/yc-cloud-id-b1gia87mbaom********-orgusername
.<имя_пользователя>
— имя пользователя в организации. Имя пользователя указано в конце имени экспортированного сертификата OS Login. В примере выше это —orgusername
.<публичный_IP-адрес_ВМ>
— полученный ранее публичный адрес виртуальной машины.
При первом подключении к ВМ появится предупреждение о неизвестном хосте:
The authenticity of host '158.160.**.** (158.160.**.**)' can't be established. ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********. Are you sure you want to continue connecting (yes/no)?
Введите в терминале слово
yes
и нажмите Enter.
Примечание
Сертификат действителен один час. По истечении этого времени для подключения к ВМ необходимо экспортировать новый сертификат.
Подключиться к ВМ по OS Login с SSH-ключом через YC CLI
Подключиться к виртуальной машине с включенным доступом по OS Login можно с помощью пользовательского SSH-ключа. Для этого создайте SSH-ключ, добавьте его в профиль пользователя организации в Yandex Cloud Organization и укажите при подключении:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-ключом через YC CLI, включите опцию Доступ по OS Login при помощи SSH-ключей.
-
Получите список всех ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+---------------+--------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+-----------------+---------------+---------+---------------+--------------+ | fhm0b28lgf********** | first-instance | ru-central1-a | RUNNING | 158.160.**.** | 192.168.0.8 | | fhm9gk85nj********** | second-instance | ru-central1-a | RUNNING | 51.250.**.*** | 192.168.0.12 | +----------------------+-----------------+---------------+---------+---------------+--------------+
-
Подключитесь к ВМ:
yc compute ssh \ --name <имя_ВМ> \ --identity-file <путь_к_файлу_закрытого_SSH_ключа> --login <имя_пользователя>
Где:
--name
— полученное ранее имя виртуальной машины. Вместо имени ВМ можно указать ее идентификатор, для этого используйте параметр--id
.--identity-file
— путь к сохраненному ранее файлу закрытого SSH-ключа. Например:/home/user1/.ssh/id_ed25519
.--login
— имя пользователя в профиле OS Login.
Произойдет подключение к указанной виртуальной машине с помощью SSH-ключа. Если это ваше первое подключение, в операционной системе ВМ будет создан новый профиль пользователя.