Подключиться к виртуальной машине по OS Login
OS Login используется для предоставления пользователям и сервисным аккаунтам доступа к ВМ по SSH c помощью IAM.
Перед началом работы
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
При необходимости создайте новую виртуальную машину с поддержкой OS Login или настройте доступ по OS Login для существующей ВМ.
Примечание
Необходимые роли для подключения к ВМ по OS Login:
Для подключения через YC CLI к виртуальной машине или узлу Kubernetes с включенным доступом по OS Login пользователю или сервисному аккаунту, от имени которого выполняется команда YC CLI, должна быть назначена роль compute.osLogin
или compute.osAdminLogin
, а также роль compute.operator
.
Для подключения через стандартный SSH-клиент к виртуальной машине или узлу Kubernetes с включенным доступом по OS Login пользователю или сервисному аккаунту, от имени которого выполняется подключение, должна быть назначена роль compute.osLogin
или compute.osAdminLogin
.
Подключиться с помощью стандартного SSH-клиента
Подключиться к виртуальной машине с включенным доступом по OS Login можно с помощью стандартного SSH-клиента как по SSH-ключу, сохраненному в профиле пользователя или сервисного аккаунта в организации, так и по короткоживущему экспортированному SSH-сертификату пользователя или сервисного аккаунта.
Чтобы подключиться к ВМ через OS Login по SSH-ключу с помощью стандартного SSH-клиента:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-ключом, включите опцию Доступ по OS Login при помощи SSH-ключей.
Чтобы иметь возможность добавить SSH-ключ в профиль пользователя организации, включите опцию Разрешить членам организации управлять своими SSH-ключами.
-
Создайте пару SSH-ключей и добавьте публичный ключ в профиль OS Login пользователя или сервисного аккаунта. Запомните расположение закрытого SSH-ключа, оно понадобится при подключении к ВМ.
-
Получите идентификатор организации, в которой находится нужный профиль OS Login пользователя или сервисного аккаунта:
yc organization-manager organization list
Результат:
+----------------------+-------------------------+-------------------------+ | ID | NAME | TITLE | +----------------------+-------------------------+-------------------------+ | bpf1smsil5q0******** | sample-organization1 | Organization 1 | | bpf2c65rqcl8******** | sample-organization2 | Organization 2 | | bpf6dne49ue8******** | sample-organization3 | Organization 3 | +----------------------+-------------------------+-------------------------+
-
Получите список логинов в профилях OS Login пользователей и сервисных аккаунтов нужной организации, указав ее идентификатор:
yc organization-manager os-login profile list \ --organization-id <идентификатор_организации>
Результат:
+----------------------+----------------------+-----------+----------------------+----------------------+------------+ | ID | LOGIN | UID | ORGANIZATION ID | SUBJECT ID | IS DEFAULT | +----------------------+----------------------+-----------+----------------------+----------------------+------------+ | aje1eb5qm7jb******** | yc-sa-my-service-acc | 487816044 | bpfaidqca8vd******** | ajevnu4u2q3m******** | true | | ajegs81t2k9s******** | user1 | 760684761 | bpfaidqca8vd******** | aje7b4u65nb6******** | true | | ajej57b2kf0t******** | user2 | 1011 | bpfaidqca8vd******** | ajei280a73vc******** | true | +----------------------+----------------------+-----------+----------------------+----------------------+------------+
Сохраните значение поля
LOGIN
для нужного пользователя или сервисного аккаунта — оно понадобится позднее.Примечание
Просматривать список профилей OS Login могут пользователи, которым назначена роль
organization-manager.osLogins.viewer
или выше на организацию. -
Получите список всех ВМ в каталоге по умолчанию:
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 | +----------------------+-----------------+---------------+---------+---------------+--------------+
Сохраните публичный IP-адрес (значение поля
EXTERNAL IP
) виртуальной машины, к которой вы хотите подключиться. -
Подключитесь к ВМ:
ssh -i <путь_к_файлу_закрытого-SSH-ключа> \ -l <логин_пользователя_или_сервисного_аккаунта> <публичный_IP-адрес_ВМ>
Где:
<путь_к_файлу_закрытого-SSH-ключа>
— путь к файлу, в котором сохранен закрытый SSH-ключ. Например:/home/user1/.ssh/id_ed25519
.<логин_пользователя_или_сервисного_аккаунта>
— полученный ранее логин пользователя или сервисного аккаунта, заданный в профиле OS Login.<публичный_IP-адрес_ВМ>
— сохраненный ранее публичный адрес виртуальной машины.
Команду для подключения к ВМ вы также можете посмотреть в консоли управления
на странице Обзор нужной ВМ в блоке Подключение к виртуальной машине: раскройте секцию Подключиться с помощью SSH-клиента и выберите вкладку По SSH-ключу.При первом подключении к ВМ появится предупреждение о неизвестном хосте:
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-сертификату с помощью стандартного SSH-клиента:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-сертификатом, включите опцию Доступ по OS Login при помощи SSH-сертификатов (рекомендуется).
-
Экспортируйте SSH-сертификат на локальный компьютер.
-
Получите идентификатор организации, в которой находится нужный профиль OS Login пользователя или сервисного аккаунта:
yc organization-manager organization list
Результат:
+----------------------+-------------------------+-------------------------+ | ID | NAME | TITLE | +----------------------+-------------------------+-------------------------+ | bpf1smsil5q0******** | sample-organization1 | Organization 1 | | bpf2c65rqcl8******** | sample-organization2 | Organization 2 | | bpf6dne49ue8******** | sample-organization3 | Organization 3 | +----------------------+-------------------------+-------------------------+
-
Получите список логинов в профилях OS Login пользователей и сервисных аккаунтов нужной организации, указав ее идентификатор:
yc organization-manager os-login profile list \ --organization-id <идентификатор_организации>
Результат:
+----------------------+----------------------+-----------+----------------------+----------------------+------------+ | ID | LOGIN | UID | ORGANIZATION ID | SUBJECT ID | IS DEFAULT | +----------------------+----------------------+-----------+----------------------+----------------------+------------+ | aje1eb5qm7jb******** | yc-sa-my-service-acc | 487816044 | bpfaidqca8vd******** | ajevnu4u2q3m******** | true | | ajegs81t2k9s******** | user1 | 760684761 | bpfaidqca8vd******** | aje7b4u65nb6******** | true | | ajej57b2kf0t******** | user2 | 1011 | bpfaidqca8vd******** | ajei280a73vc******** | true | +----------------------+----------------------+-----------+----------------------+----------------------+------------+
Сохраните значение поля
LOGIN
для нужного пользователя или сервисного аккаунта — оно понадобится позднее.Примечание
Просматривать список профилей OS Login могут пользователи, которым назначена роль
organization-manager.osLogins.viewer
или выше на организацию. -
Получите список всех ВМ в каталоге по умолчанию:
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 | +----------------------+-----------------+---------------+---------+---------------+--------------+
Сохраните публичный IP-адрес (значение поля
EXTERNAL IP
) виртуальной машины, к которой вы хотите подключиться. -
Подключитесь к ВМ:
ssh -i <путь_к_файлу_сертификата> \ -l <логин_пользователя_или_сервисного_аккаунта> <публичный_IP-адрес_ВМ>
Где:
<путь_к_файлу_сертификата>
— путь к экспортированному ранее файлуIdentity
сертификата. Например:/home/user1/.ssh/yc-cloud-id-b1gia87mbaom********-orgusername
.<логин_пользователя_или_сервисного_аккаунта>
— полученный ранее логин пользователя или сервисного аккаунта, заданный в профиле OS Login.<публичный_IP-адрес_ВМ>
— сохраненный ранее публичный адрес виртуальной машины.
Команду для подключения к ВМ вы также можете посмотреть в консоли управления
на странице Обзор нужной ВМ в блоке Подключение к виртуальной машине: раскройте секцию Подключиться с помощью SSH-клиента и выберите вкладку По сертификату.При первом подключении к ВМ появится предупреждение о неизвестном хосте:
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.
Примечание
Сертификат действителен один час. По истечении этого времени для подключения к ВМ необходимо экспортировать новый сертификат.
Произойдет подключение к указанной виртуальной машине. Если это ваше первое подключение, в операционной системе ВМ будет создан новый профиль пользователя.
Подключиться с помощью YC CLI
Подключиться к виртуальной машине с включенным доступом по OS Login можно с помощью YC CLI как по SSH-ключу, сохраненному в профиле пользователя или сервисного аккаунта в организации, так и по SSH-сертификату пользователя или сервисного аккаунта.
Чтобы подключиться к ВМ через OS Login по SSH-ключу с помощью YC CLI:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-ключом, включите опцию Доступ по OS Login при помощи SSH-ключей.
Чтобы иметь возможность добавить SSH-ключ в профиль пользователя организации, включите опцию Разрешить членам организации управлять своими SSH-ключами.
-
Создайте пару SSH-ключей и добавьте публичный ключ в профиль OS Login пользователя или сервисного аккаунта. Запомните расположение закрытого SSH-ключа, оно понадобится при подключении к ВМ.
-
Посмотрите описание команды CLI для подключения к ВМ:
yc compute ssh --help
-
Получите идентификатор организации, в которой находится нужный профиль OS Login пользователя или сервисного аккаунта:
yc organization-manager organization list
Результат:
+----------------------+-------------------------+-------------------------+ | ID | NAME | TITLE | +----------------------+-------------------------+-------------------------+ | bpf1smsil5q0******** | sample-organization1 | Organization 1 | | bpf2c65rqcl8******** | sample-organization2 | Organization 2 | | bpf6dne49ue8******** | sample-organization3 | Organization 3 | +----------------------+-------------------------+-------------------------+
-
Получите список логинов в профилях OS Login пользователей и сервисных аккаунтов нужной организации, указав ее идентификатор:
yc organization-manager os-login profile list \ --organization-id <идентификатор_организации>
Результат:
+----------------------+----------------------+-----------+----------------------+----------------------+------------+ | ID | LOGIN | UID | ORGANIZATION ID | SUBJECT ID | IS DEFAULT | +----------------------+----------------------+-----------+----------------------+----------------------+------------+ | aje1eb5qm7jb******** | yc-sa-my-service-acc | 487816044 | bpfaidqca8vd******** | ajevnu4u2q3m******** | true | | ajegs81t2k9s******** | user1 | 760684761 | bpfaidqca8vd******** | aje7b4u65nb6******** | true | | ajej57b2kf0t******** | user2 | 1011 | bpfaidqca8vd******** | ajei280a73vc******** | true | +----------------------+----------------------+-----------+----------------------+----------------------+------------+
Сохраните значение поля
LOGIN
для нужного пользователя или сервисного аккаунта — оно понадобится позднее.Примечание
Просматривать список профилей OS Login могут пользователи, которым назначена роль
organization-manager.osLogins.viewer
или выше на организацию. -
Получите список всех ВМ в каталоге по умолчанию:
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 <логин_пользователя_или_сервисного_аккаунта> \ --internal-address
Где:
--name
— полученное ранее имя виртуальной машины. Вместо имени ВМ можно указать ее идентификатор, для этого используйте параметр--id
.--identity-file
— путь к файлу закрытого SSH-ключа. Например:/home/user1/.ssh/id_ed25519
.--login
— полученный ранее логин пользователя или сервисного аккаунта, заданный в профиле OS Login. Необязательный параметр. Если параметр не задан, для подключения будет использован логин, который указан в профиле OS Login по умолчанию для пользователя или сервисного аккаунта, авторизованного в текущий момент в профиле YC CLI.- (опционально)
--internal-address
— для подключения по внутреннему IP-адресу.
Команду для подключения к ВМ вы также можете посмотреть в консоли управления
на странице Обзор нужной ВМ в блоке Подключение к виртуальной машине: раскройте секцию Подключиться с помощью CLI-интерфейса Yandex Cloud и выберите вкладку По SSH-ключу.
Чтобы подключиться к ВМ через OS Login по SSH-сертификату с помощью YC CLI:
-
Включите доступ по OS Login на уровне организации.
Чтобы подключиться к ВМ по OS Login с SSH-сертификатом, включите опцию Доступ по OS Login при помощи SSH-сертификатов (рекомендуется).
-
Посмотрите описание команды CLI для подключения к ВМ:
yc compute ssh --help
-
Получите идентификатор организации, в которой находится нужный профиль OS Login пользователя или сервисного аккаунта:
yc organization-manager organization list
Результат:
+----------------------+-------------------------+-------------------------+ | ID | NAME | TITLE | +----------------------+-------------------------+-------------------------+ | bpf1smsil5q0******** | sample-organization1 | Organization 1 | | bpf2c65rqcl8******** | sample-organization2 | Organization 2 | | bpf6dne49ue8******** | sample-organization3 | Organization 3 | +----------------------+-------------------------+-------------------------+
-
Получите список логинов в профилях OS Login пользователей и сервисных аккаунтов нужной организации, указав ее идентификатор:
yc organization-manager os-login profile list \ --organization-id <идентификатор_организации>
Результат:
+----------------------+----------------------+-----------+----------------------+----------------------+------------+ | ID | LOGIN | UID | ORGANIZATION ID | SUBJECT ID | IS DEFAULT | +----------------------+----------------------+-----------+----------------------+----------------------+------------+ | aje1eb5qm7jb******** | yc-sa-my-service-acc | 487816044 | bpfaidqca8vd******** | ajevnu4u2q3m******** | true | | ajegs81t2k9s******** | user1 | 760684761 | bpfaidqca8vd******** | aje7b4u65nb6******** | true | | ajej57b2kf0t******** | user2 | 1011 | bpfaidqca8vd******** | ajei280a73vc******** | true | +----------------------+----------------------+-----------+----------------------+----------------------+------------+
Сохраните значение поля
LOGIN
для нужного пользователя или сервисного аккаунта — оно понадобится позднее.Примечание
Просматривать список профилей OS Login могут пользователи, которым назначена роль
organization-manager.osLogins.viewer
или выше на организацию. -
Получите список всех ВМ в каталоге по умолчанию:
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 <имя_ВМ> --login <логин_пользователя_или_сервисного_аккаунта> --internal-address
Где:
--name
— полученное ранее имя виртуальной машины. Вместо имени ВМ можно указать ее идентификатор, для этого используйте параметр--id
.--login
— полученный ранее логин пользователя или сервисного аккаунта, заданный в профиле OS Login. Необязательный параметр. Если параметр не задан, для подключения будет использован SSH-сертификат пользователя или сервисного аккаунта, авторизованного в текущий момент в профиле YC CLI.- (опционально)
--internal-address
— для подключения по внутреннему IP-адресу.
Команду для подключения к ВМ вы также можете посмотреть в консоли управления
на странице Обзор нужной ВМ в блоке Подключение к виртуальной машине: раскройте секцию Подключиться с помощью CLI-интерфейса Yandex Cloud и выберите вкладку По сертификату.
Произойдет подключение к указанной виртуальной машине. Если это ваше первое подключение, в операционной системе ВМ будет создан новый профиль пользователя.