Как получить ключи 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]
-
Создать ключ SSH ssh-keygen -t rsa -f ~/.ssh/gcloud_instance1 -C varunon9
здесь gcloud_instance1
- это имя файла ключа, а varunon9
- это имя пользователя
-
Распечатать содержимое файла открытого ключа cd ~/.ssh && cat gcloud_instance1.pub
-
Нажмите на иконку Редактировать информацию об экземпляре виртуальной машины
.
-
Вставьте содержимое файла открытого ключа (вывод cd ~/.ssh && cat gcloud_instance1.pub
) в текстовую область ключей ssh-
![enter image description here]()
-
Нажмите на Сохранить
-
Теперь из терминала вы можете войти в свой экземпляр через 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]()