Почему мне нужно gcloud вычислить ssh до того, как сработает сторонняя команда ssh?

# #google-cloud-platform

Вопрос:

Мне довольно ясно , что происходит на уровне enable-oslogin=False проекта, но когда уровень проекта enable-oslogin=True , я полностью теряюсь.

Когда я пытаюсь сделать ssh student-01-f952f18fbed5@instance_ip это с моего локального расширения vscode remote-ssh (расширение или нет, это не должно иметь значения), мне отказывают в разрешении.

Только когда после запуска gcloud compute ssh student-01-f952f18fbed5@instance_name (который успешно входит в виртуальную машину) я выполняю свою предыдущую ssh student-01-f952f18fbed5@instance_ip работу.

Каков механизм, стоящий за этим? В моем нынешнем понимании это один раз enable-oslogin=True , это не имеет ничего общего с ключами SSH в метаданных уровня проекта/экземпляра.

Что делает команда gcloud в экземпляре, который вызывает предыдущую неудачу ssh student-01-f952f18fbed5@instance_ip ?

Также, почему я вижу это в выводе ( Using OS Login user [student-04-cdc227e46648] instead of requested user [some_other_user] ), когда пытаюсь gcloud ssh compute some_other_user@instance_name .

Хотя я все еще могу войти (gcloud автоматически переключает меня на пользователя student-04-cdc227e46648 ), этот метод не позволяет последующему ssh student-01-f952f18fbed5@instance_ip работать. Почему так? (Я все еще должен сначала использовать gcloud compute ssh student-01-f952f18fbed5@instance_name )

Дополнительные сведения

Я работал на виртуальной машине, предоставленной Qwiklabs, поэтому student-01-f952f18fbed5 в моем вопросе выше была какая-то случайно сгенерированная учетная запись пользователя, например student-01-f952f18fbed5@qwiklabs.net