it-roy-ru.com

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

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

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

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

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

21
steevithak

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

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

Один из вариантов - подключиться с помощью кнопки «SSH» в графическом интерфейсе консоли разработчика рядом с экземпляром в списке экземпляров, что откроет окно браузера и сеанс терминала с экземпляром.

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

gcloud compute ssh example-instance

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

Если у вас еще нет ключей 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 .

Вы также можете создавать свои собственные ключи, используя 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 .

40
Misha Brukman

Для входа в экземпляр с помощью 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. Нажмите на значок Редактировать VM информацию об экземпляре  enter image description here

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

     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-адрес вашего экземпляра.

6
Varun Kumar

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

gcloud compute --project ssh --zone 

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

ssh -i username @ external_IP

0
Abubacker Siddik