Добавить SSH-ключ
Загрузите SSH-ключи в профиль пользователя организации или сервисного аккаунта в Cloud Organization, чтобы с их помощью он мог подключаться к виртуальным машинам и узлам кластеров Yandex Managed Service for Kubernetes с включенным доступом по OS Login.
Для добавления SSH-ключа в профиль пользователя или сервисного аккаунта убедитесь, что на уровне организации включена опция Доступ по OS Login при помощи SSH-ключей. При необходимости создайте новую пару SSH-ключей.
Чтобы добавить публичный SSH-ключ в профиль OS Login:
-
Войдите в сервис Yandex Cloud Organization
с учетной записью администратора или владельца организации.При необходимости переключитесь на нужную организацию или федерацию.
-
На панели слева выберите
Пользователи. -
В списке выберите пользователя, в профиль OS Login которого вы хотите добавить SSH-ключ.
При необходимости воспользуйтесь фильтром или поиском.
-
Перейдите на вкладку SSH-ключи и нажмите кнопку Добавить ключ. В открывшемся окне:
-
Задайте имя для добавляемого SSH-ключа.
-
Введите вручную или загрузите из файла открытый SSH-ключ.
-
Задайте срок действия загружаемого ключа.
-
Нажмите кнопку Добавить.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для загрузки SSH-ключа в профиль пользователя:
yc organization-manager oslogin user-ssh-key create --help
-
Получите идентификатор нужной организации:
yc organization-manager organization list
Результат:
+----------------------+-------------------------+-------------------------+ | ID | NAME | TITLE | +----------------------+-------------------------+-------------------------+ | bpf1smsil5q0******** | sample-organization-1 | My organization | | bpf2c65rqcl8******** | sample-organization-new | New organization | +----------------------+-------------------------+-------------------------+
-
Получите идентификатор нужного пользователя, указав полученный ранее идентификатор организации:
yc organization-manager user list \ --organization-id <идентификатор_организации>
Результат:
+----------------------+-----------------------+---------------------------------+----------------------+ | ID | USERNAME | EMAIL | FEDERATION ID | +----------------------+-----------------------+---------------------------------+----------------------+ | aje5qd0po0nj******** | sample-user-1 | sample-user-1@yandex.ru | | | ajee30kevjjf******** | sample-user-2 | sample-user-2@yandex.ru | | | ajeeg4ju49h6******** | sample-user-3 | sample-user-3@yandex.ru | bpfbl7q3mjbr******** | | ajei280a73vc******** | sample-user-4 | sample-user-4@yandex.ru | | +----------------------+-----------------------+---------------------------------+----------------------+
-
Загрузите SSH-ключ в профиль пользователя или сервисного аккаунта:
yc organization-manager oslogin user-ssh-key create \ --organization-id <идентификатор_организации> \ --name "<имя_ключа>" \ --subject-id <идентификатор_пользователя_или_СА> \ --data "<публичный_SSH-ключ>" \ --expires-at <срок_действия_ключа>
Где:
-
--organization-id
— полученный ранее идентификатор организации. -
--name
— имя загружаемого ключа. -
--subject-id
— полученный ранее идентификатор пользователя или сервисного аккаунта, в профиль которого добавляется SSH-ключ. -
--data
— содержимое публичного SSH-ключа. -
--expires-at
— срок действия загружаемого ключа. Необязательный параметр. Позволяет установить для загружаемого ключа произвольный срок действия. Значение может задаваться в двух форматах:- дата окончания действия ключа в формате ISO 8601
, например,YYYY-MM-DDT00:00:00Z
; - время действия ключа в часах и минутах, например
1h
или3h30m
.
- дата окончания действия ключа в формате ISO 8601
Результат:
id: bpfrtmgobqvc******** subject_id: ajei280a73vc******** data: ssh-ed25519 AAAAC3Nza_YOUR_PUBLIC_SSH_KEY_Ejal+P1sRgYA3T name: My Key fingerprint: SHA256:EJQdhwWDFj4TebYQzx9CmKZHr53rNN59u0W******** organization_id: bpf2c65rqcl8******** created_at: "2024-03-12T17:42:31.339022059Z" expires_at: "2024-03-12T21:12:31.176467230Z"
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_organizationmanager_user_ssh_key" "my_user_ssh_key" { organization_id = "<идентификатор_организации>" subject_id = "<идентификатор_пользователя>" data = "<публичный_SSH-ключ>" name = "<имя_ключа>" expires_at = "<срок_действия_ключа>" }
Где:
organization_id
— идентификатор организации.subject_id
— идентификатор пользователя или сервисного аккаунта, в профиль которого добавляется SSH-ключ.data
— содержимое публичного SSH-ключа.name
— имя загружаемого ключа.expires_at
— срок действия загружаемого ключа. Необязательный параметр. Позволяет установить для загружаемого ключа произвольные время и дату, после которых ключ становится недействительным. Значение задается в формате ISO 8601 , например,YYYY-MM-DDT00:00:00Z
.
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов.
После этого в профиль пользователя будет загружен SSH-ключ. Чтобы убедиться в том, что SSH-ключ добавлен, выполните команду YC CLI, указав идентификатор организации:
yc organization-manager oslogin user-ssh-key list --organization-id <идентификатор_организации>
Результат:
+----------------------+--------+----------------------+----------------------+----------------------------------------------------+---------------------+---------------------+ | ID | NAME | ORGANIZATION ID | SUBJECT ID | FINGERPRINT | CREATED AT | EXPIRES AT | +----------------------+--------+----------------------+----------------------+----------------------------------------------------+---------------------+---------------------+ | bpf6big3s4h0******** | My key | bpf2c65rqcl8******** | ajei280a73vc******** | SHA256:EJQdhwWDFj4TebYQzx9CmKZHr53rNN59u0W******** | 2024-03-12 18:48:17 | 2024-03-12 21:12:31 | +----------------------+--------+----------------------+----------------------+----------------------------------------------------+---------------------+---------------------+
-
Воспользуйтесь методом REST API create для ресурса UserSshKey или вызовом gRPC API UserSshKeyService/Create.
Добавить SSH-ключ в профиль сервисного аккаунта можно только с помощью CLI, Terraform или API.
Чтобы пользователи могли самостоятельно загружать SSH-ключи в свои профили, включите опцию Разрешить членам организации управлять своими SSH-ключами.