Я создал виртуальную машину Compute Engine (Ubuntu 18.04), и когда я вхожу в нее с помощью кнопки SSH в списке экземпляров виртуальной машины, я регистрируюсь как username .

Через некоторое время я понял, что мне нужно иметь возможность использовать и другой SSH-клиент. Согласно https://cloud.google.com/compute/docs/instances/connecting-advanced я включил вход в ОС, добавив пару ключ-значение в метаданные, где ключ - enable-oslogin а значение - TRUE .

Затем я попытался добавить свой существующий ключ SSH:

gcloud compute os-login ssh-keys add --key-file path/to/key.pub --ttl 0

который был успешным, за исключением одной серьезной проблемы: он добавил ключ для пользователя username_gmail_com и позволит мне только ssh подключиться к моей виртуальной машине как этот пользователь:

ssh username_gmail_com@myinstance

И он также создал этого пользователя на моей виртуальной машине. Из веб-интерфейса я также вошел в виртуальную машину с этим новым пользователем (/home/username_gmail_com). Конечно, я все еще могу получить доступ к данным исходного пользователя (/home/username). Когда я отключаю вход в ОС, веб-интерфейс снова регистрирует меня как username и SSH от другого клиента отключается.

  1. Почему имя пользователя отличается при включении входа в систему ОС?
  2. Могу ли я изменить имя пользователя с включенным входом в ОС?

редактировать

В документы было добавлено объяснение именно этого вопроса. Проверьте здесь: https://cloud.google.com/compute/docs/oslogin/ и на странице, которую я упомянул выше, внизу под заголовком "Ожидаемое поведение при входе".

3 ответа3

0

Если вы добавили свой ssh-ключ в метаданные, вы сможете получить доступ к корневой учетной записи внутри экземпляра, выполнив эту команду:

sudo -i

В корне вы можете получить доступ к папке /home /username и передавать нужные файлы.

0

Согласно этому документу github , пакет входа в систему ОС (гостевая среда в данном случае) получает ключи SSH из профиля входа пользователя в ОС и делает их доступными для sshd. Но при этом он должен запросить у сервера метаданных профиль и проверить авторизацию учетной записи пользователя (адрес электронной почты).

Как поясняется далее: при использовании сторонних инструментов для SSH традиционный способ добавления пользователей в экземпляр - создание и добавление открытых ключей для каждого пользователя в метаданные экземпляра или проекта и в соответствии с этим документом.

Однако вход в систему ОС предназначен для использования ролей IAM Compute Engine для управления ключами SSH. Это означает, что каждый пользователь, которому необходимо предоставить доступ SSH к экземпляру, должен иметь учетную запись Google (электронную почту), учетная запись должна быть участником проекта и иметь соответствующие роли IAM Compute Engine (например, compute.oslogin).

Таким образом, когда процесс, описанный в приведенной выше ссылке на github, происходит впервые, он создает пользователя, который наследует формат учетной записи (электронная почта), такой как user_lastname_gmail_com . Для получения дополнительной информации о входе в ОС вы можете проверить этот документ

0

Я задал этот вопрос здесь и получил четкий ответ.

Почему имя пользователя отличается между ОС Логин и отключен?

Вход в ОС связывает вашу учетную запись пользователя Linux с вашей идентификационной информацией Google, так что у вас есть непротиворечивое имя пользователя, UID и другая информация posix в каждой виртуальной машине, в которую вы входите.

[...]

Во избежание конфликтов уникальности в разных организациях (user@gmail.com и user@example.com) доменное имя включено по умолчанию.

[...]

Когда вход в ОС не включен, в вашем ключе SSH задается имя пользователя, которое не привязано к идентификатору пользователя Google. Имя пользователя генерируется так, чтобы оно было удобным, и ни одна из проблем, связанных с логином ОС, не применяется.

И могу ли я влиять на имя пользователя при включенном входе в ОС?

Информация posix является неизменной для идентификаторов потребителей (не пользователей G Suite).

Так что нет, я не могу, потому что я человек, а не организация.

В конце концов, я решил неудобство, которое это вызвало, просто воссоздав сервер с включенным входом в ОС - это, конечно, одна из сильных сторон Compute Engine.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .