Как связаны ~/.ssh/авторизованные ключи и метаданные уровня проекта/экземпляра google Cloud?

# #google-cloud-platform #ssh #google-compute-engine

Вопрос:

Из того, что я прочитал, ~/.ssh/authorized_keys просто возьмите то, что содержится в метаданных на уровне проекта. Если я удаляю запись с консоли, она также исчезает из authorized_keys файла. Однако, если я удалю файл из authorized_keys файла, консоль все равно отобразит запись с удаленным открытым ключом.

Как только я выйду из сеанса ssh, я не смогу вернуться ни с gcloud compute ssh user@instance_name одним, ни ssh user@instance_ip с другим . Почему это так?

Затем мне пришлось перейти к консоли и удалить эту запись (которую я ранее удалил, отредактировав authorized_keys файл напрямую), и только теперь gcloud compute ssh user@instance_name она снова работает правильно, помогая мне добавлять свои google_compute_engine.pub метаданные в проект, так ssh user@instance_ip что теперь тоже работает.

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

Ответ №1:

Можно предоставить ключи SSH либо на уровне проекта, либо на уровне экземпляра. Пожалуйста, не редактируйте файлы, а добавляйте их на консоль GCE, потому что обычно ими управляет GCP. Так что можно даже, например. создайте и предоставьте новый ключ, запустите сценарий, дайте ключу истечь. Аналогично, этому не нужно нигде хранить ключ …что совсем не похоже на традиционную виртуальную машину. Количество ключей, которые можно добавить в метаданные экземпляра, ограничено.