Google Cloud - доступ к виртуальной машине Linux через закрытый ключ - PullRequest
0 голосов
/ 19 ноября 2018

Я создал виртуальную машину Linux в облаке Google и сейчас пытаюсь получить доступ к виртуальной машине через SSH.

Я могу SSH к серверу, , если я вошел в консоль через интерфейс , однако я пытаюсь сгенерировать переносимый файл закрытого ключа (pem), который я могу использовать для удаленного доступа к серверу с в любом месте .

Я могу легко добиться этого в AWS или Azure при создании виртуальной машины, но в GC это не так.

Ответы [ 5 ]

0 голосов
/ 20 марта 2019

Я нашел этот ответ и просто хотел обновить информацию о том, что у меня работает

С установленным клиентом gcloud на вашей машине (с какой машиной вы хотите подключиться к ВМ).

  1. Аутентифицируйте свой сервис, используя ключ проекта JSONgcloud auth activate-service-account --key-file=[keyfile_for_project].json

  2. Создание ssh пар ключей на локальном компьютере$(which ssh-keygen) -t rsa -C "your@email.com"

  3. Добавьте открытый ключ, который вы только что создали в id_rsa.pub к метаданным вашей виртуальной машины (отличные снимки экрана, включенные в ответ Мохита Кумара)cat $PWD/id_rsa.pub (вставьте этот вывод в метаданные ключа SSH)
  4. ssh к экземпляру виртуальной машины, используя закрытый ключ, который вы только что создали в id_rsassh -v -i id_rsa [user]@[external_ip]

Если вы хотите сделать этот портативный компьютер, просто носите с собой пару открытого ключа (id_rsa) открытого ключа (id_rsa.pub) с собой

0 голосов
/ 22 ноября 2018

Я понимаю, что вы имеете в виду, но Google делает это немного более автоматически.

На любом локальном компьютере сначала получите учетную запись json с правами доступа.

Авторизовал gcloud,

gcloud auth activate-service-account --key-file=KEY_FILE.json

Тогда

gcloud compute config-ssh [--ssh-config-file=SSH_CONFIG_FILE] [--ssh-key-file=SSH_KEY_FILE]

Возможно, у вас уже есть файл ssh, но это нормально, если вы просто позволите gcloud его сгенерировать.

Наконец, вы можете подключиться к любому вычислительному движку с этого компьютера с помощью:

gcloud compute ssh [USER@]INSTANCE

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

0 голосов
/ 19 ноября 2018

Это не то, как работает gcloud.

Облачная платформа Google фактически заранее использует открытый ключ при создании экземпляра виртуальной машины в вычислительной службе. Вы можете сгенерировать ключ на своем компьютере с помощью ssh-keygen и добавить его, используя следующие методы к вашему экземпляру.

У вас есть 2 варианта. Либо вы можете добавить ключ ssh для всего экземпляра (снимок экрана 1), отредактировав настройку вашего экземпляра, либо добавить проект ключа ssh в раздел метаданных вычислительной службы (снимок экрана 2).

Screenshot1

Screenshot 1

Скриншот 2

Screenshot 2

0 голосов
/ 21 ноября 2018

Откройте терминал на вашей рабочей станции и используйте команду ssh-keygen для генерации нового ключа. Укажите флаг -C, чтобы добавить комментарий с вашим именем пользователя.

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

, где: [KEY_FILENAME] - это имя, которое вы хотите использовать для файлов ключей SSH. Например, имя файла my-ssh-key создает файл личного ключа с именем my-ssh-key и файл открытого ключа с именем my-ssh-key.pub.

[USERNAME] - это пользователь, для которого вы будете применять этот SSH-ключ.

Ограничьте доступ к вашему личному ключу, чтобы только вы могли читать его, и никто не мог писать к нему.

chmod 400 ~/.ssh/[KEY_FILENAME]

где [KEY_FILENAME] - это имя, которое вы использовали для файлов ключей SSH. Повторите этот процесс для каждого пользователя, которому нужен новый ключ.

Если вы создали ключ на рабочей станции Linux с помощью инструмента ssh-keygen, ключи сохраняются в следующих местах:

Файл открытого ключа: ~/.ssh/[KEY_FILENAME].pub

Файл закрытого ключа: ~/.ssh/[KEY_FILENAME]

где [KEY_FILENAME] - имя файла ключа SSH, которое было задано при создании ключа.

Чтобы добавить или удалить общедоступные SSH-ключи для всего проекта из консоли GCP:

В консоли Google Cloud Platform перейдите на страницу метаданных для своего проекта. Его можно найти в меню GCE.

В разделе SSH Keys нажмите кнопку Изменить.

Изменение общедоступных SSH-ключей для всего проекта. Чтобы добавить общедоступный SSH-ключ, нажмите кнопку «Добавить элемент» внизу страницы. Это создаст текстовое поле. Скопируйте содержимое вашего открытого файла ключей SSH и вставьте его в текстовое поле. Повторите этот процесс для каждого открытого ключа SSH, который вы хотите добавить.

Когда вы закончите, нажмите Сохранить внизу страницы.

Для подключения к экземпляру с использованием ssh

В терминале используйте команду ssh и ваш личный файл ключа SSH для подключения к вашему экземпляру. Укажите ваше имя пользователя и внешний IP-адрес экземпляра, к которому вы хотите подключиться.

ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]

, где: [PATH_TO_PRIVATE_KEY] - это путь к вашему личному файлу SSH-ключа.

[USERNAME] - имя пользователя, подключающегося к экземпляру. Имя пользователя для вашего открытого ключа SSH было указано при создании ключа SSH. Вы можете подключиться к экземпляру как этот пользователь, если у экземпляра есть действительный открытый ключ SSH для этого пользователя и если у вас есть соответствующий закрытый ключ SSH.

[EXTERNAL_IP_ADDRESS] - внешний IP-адрес вашего экземпляра. Если соединение установлено успешно, вы можете использовать терминал для запуска команд на вашем экземпляре. Когда вы закончите, используйте команду выхода для отключения от экземпляра.

0 голосов
/ 19 ноября 2018

Для доступа по SSH вы бы не использовали ключ pem. На вашей клиентской машине вы должны запустить (если в системе Unix / Linux) ssh-keygen, которая проведет вас через создание ключа ssh (по умолчанию RSA). Затем вам нужно добавить открытый ключ (~/.ssh/id_rsa.pub или файл, указанный при создании) в ~/.ssh/authorized_keys на сервере.

...