Как получить ключи ssh для нового экземпляра Google Compute Engine?

Я новый пользователь Google Cloud trial из мира Amazon EC2, и я полностью озадачен тем, как я вхожу через ssh в новый экземпляр VM Google Compute Engine.

Я создал новый экземпляр через веб-консоль Google Cloud (из CentOS 6.x image, Если это имеет значение). Я увидел пробел в форме создания, где я мог вставить существующий ключ ssh, но так как это был мой первый экземпляр, у меня его еще не было. Я предполагал, что это проведет меня через ключевой процесс создания, как Amazon EC2 делает. Но этого не произошло. Кажется, он создал экземпляр, но я не могу понять, как получить ключи ssh для него. На веб-странице экземпляра есть кнопка с надписью "ssh", и она позволяет мне войти в систему через всплывающее окно веб-браузера, которое имитирует сеанс ssh. Однако он только позволил мне войти в учетную запись уровня пользователя, а не root. Во всплывающем окне был пункт меню для изменения пользователя, и я изменил его на "root", после чего он ничего не делает, кроме генерации ошибок подключения, и теперь я не могу войти в свой экземпляр совсем.

Я искал, но не могу найти никакой прямой документации, которая объясняет этот аспект экземпляров Google compute. Я искал веб-консоль, но не могу найти механизм создания/выбора ключа ssh, ни какой-либо способ создания или загрузки ключей для экземпляра.

должен ли я создавать свои собственные ключи ssh вручную на моем конце и вставлять их в форму во время создания или есть какой-то другой очевидный шаг, который мне не хватает?

2 ответов


по умолчанию новый экземпляр VM Google Compute Engine (GCE) не имеет заранее назначенных SSH-ключей, поэтому вы не можете "извлечь" их, поскольку они не существуют-это зависит от вас, чтобы создать их или использовать такой инструмент, как gcloud (см. ниже), который предложит вам создать их, если у вас еще нет ключей SSH.

у вас есть несколько вариантов подключения к недавно созданной виртуальной машине GCE.

один из вариантов-подключиться с помощью кнопки " SSH " в GUI консоли разработчика рядом с экземпляр в списке экземпляров, который откроет окно браузера и сеанс терминала для экземпляра.

если вы хотите подключиться через SSH-клиент в командной строке, вы можете использовать (часть Google Cloud SDK):

gcloud compute ssh example-instance

вы можете увидеть полный набор флагов и параметров gcloud compute ssh страница справки вместе с несколькими примерами.

если у вас еще нет ключей SSH, он предложит вам создать их, а затем подключитесь к экземпляру. Если у вас уже есть ключи, вы можете использовать существующие ключи SSH, которые он передаст экземпляру.

по умолчанию gcloud ожидает, что ключи будут расположены по следующим путям:

  • $HOME/.ssh/google_compute_engine – закрытый ключ
  • $HOME/.ssh/google_compute_engine.pub – открытый ключ

если вы хотите использовать ключи из другого места с gcloud, считаю либо делать симлинки или указывать gcloud там с помощью --ssh-key-file флаг.

Примечание: если вы не используете gcloud вообще, вы должны вручную добавить ключи SSH в метаданные экземпляра, как описано в настройка ssh ключей на уровне экземпляра, которые вы можете сделать через gcloud или вручную через Google Cloud console.

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

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
    -o CheckHostIP=no -o StrictHostKeyChecking=no \
    USER@IP_ADDRESS

для чего потребуются следующие параметры:

  • KEY_FILE – [требуется] файл, в котором ключи хранятся на компьютере, например, ~/.ssh/google_compute_engine.

  • USER – [требуется] имя пользователя для входа в этот экземпляр. Обычно это имя пользователя локального пользователя gcloud compute.

  • IP_ADDRESS - [обязательно] внешний IP-адрес экземпляра.

дополнительные сведения см. В разделе SSH docs.


Как только вы откроете консоль, попробуйте просмотреть команду gcloud на вкладке ssh. Клиент gcloud откроется со следующей командой.

gcloud compute --project ssh --zone

и если его первый раз, он создаст ssh-ключ для вас. Вам просто нужно скачать файл в этом месте ~/.ssh / google_compute_engine используя опцию загрузки файла клиента gcloud в правом верхнем углу. Как только у вас будет ключевой файл, просто выдайте

ssh-i имя пользователя@external_IP