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

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

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

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

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

Ответ 1

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

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

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

Если вы хотите подключиться через SSH-клиент в командной строке, вы можете использовать инструмент gcloud (часть 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 \
    [email protected]_ADDRESS

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

  • KEY_FILE - [Обязательный] Файл, в котором ключи хранятся на компьютере, например ~/.ssh/google_compute_engine.

  • USER - [Обязательно] Имя пользователя для входа в этот экземпляр. Как правило, это имя пользователя локального пользователя, выполняющего gcloud compute.

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

Подробнее см. документы SSH.

Ответ 2

Для входа в систему с помощью ssh- [Все шаги, выполненные в Linux Ubuntu 16.04]

  1. Создать ключ SSH ssh-keygen -t rsa -f ~/.ssh/gcloud_instance1 -C varunon9 здесь gcloud_instance1 - это имя файла ключа, а varunon9 - это имя пользователя

  2. Распечатать содержимое файла открытого ключа cd ~/.ssh && cat gcloud_instance1.pub

  3. Нажмите на иконку Редактировать информацию об экземпляре виртуальной машины enter image description here.

  4. Вставьте содержимое файла открытого ключа (вывод cd ~/.ssh && cat gcloud_instance1.pub) в текстовую область ключей ssh-

    enter image description here enter image description here

  5. Нажмите на Сохранить

  6. Теперь из терминала вы можете войти в свой экземпляр через ssh ssh -i gcloud_instance1 [email protected] где gcloud_instance1 - файл закрытого ключа (в каталоге .ssh), а varunon9 - имя пользователя, а 35.200.201.56 - внешний IP-адрес вашего экземпляра.

Ответ 3

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

Шаг 1: Установите putty и puttyGen с https://putty.org/

Шаг 2: Откройте терминал на локальном компьютере/ноутбуке (в Windows 10 и более поздних версиях вы используете подсистему Linux Linux)

Тип: ssh-keygen

Введите имя для имени файла в командной строке: например, google_key

Будет создано 2 файла google_key и google_key.pub

Шаг 3. Скопируйте все содержимое google_key.pub.

Обратите внимание, что нет символа новой строки. Все должно быть в одной строке.

Шаг 4. Перед созданием любого экземпляра виртуальной машины перейдите в Compute Engine → Метаданные

Выберите вкладку "SSH ключи" и нажмите "Добавить SSH" ключи

Вставьте содержимое google_key.pub. Если вы правильно вставили содержимое, вы должны увидеть имя пользователя на левой этикетке. Затем нажмите Сохранить.

Шаг 5: Теперь создайте свой любимый экземпляр виртуальной машины под Google Compute.

Скопируйте внешний IP vm_instance_external_ip

Вернитесь к терминалу Linux и введите

ssh -i google_key.pub username @vm_instance_external_ip

Типа "да"

А теперь тебе надо идти.

Если вам нужны видео инструкции, смотрите здесь

Ответ 4

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

gcloud compute --project ssh --zone

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

ssh -i username @external_IP

Ответ 5

Я нашел полезную кнопку, которая помогает избежать игры в угадывание для различных параметров gcloud, таких как versionId, serviceId и т.д.

Просмотреть команду gcloud -> ssh screenshot