Как получить ключи 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