SSH к экземпляру Google Compute с использованием NodeJS, без gcloud - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать SSH-туннель в вычислительном экземпляре из среды, в которой не установлено gcloud (стандартная среда App Engine NodeJS).

Какие шаги необходимо выполнитьтот?Как команда gcloud compute ssh делает это?Есть ли библиотека NodeJS, которая уже это делает?

Ответы [ 4 ]

1 голос
/ 27 мая 2019

"gcloud compute ssh" генерирует постоянные ключи SSH для пользователя. Открытый ключ хранится в метаданных ключей проекта или экземпляра SSH, а гостевая среда создает необходимого локального пользователя и помещает ~ / .ssh / authorized_keys в свой домашний каталог. Вы можете вручную добавить свой открытый ключ к экземпляру, а затем подключиться к нему через ssh, используя библиотеку ssh узла 1 . Или вы можете установить сценарий запуска для экземпляра при его создании 2 . Как отметил Cloud Ace, вы можете использовать модуль ssh2 3 для совместимости с node.js.


0 голосов
/ 30 мая 2019

Я создал пакет gcloud-ssh-tunnel , который выполняет необходимые шаги:

  1. Создание личного / открытого ключа с помощью sshpk
  2. Импортирует открытый ключ с помощью API входа в ОС
  3. SSH с использованием ssh2 (и специально создает туннель, потому что это был тот случай использования, который мне был нужен - см.Why? раздел в пакете)
  4. Удалите открытый ключ, используя OS Login API (чтобы не переполнять учетную запись и не оставить безопасный доступ)
0 голосов
/ 27 мая 2019

Как правило, вам нужно зарезервировать и назначить статический внешний IP-адрес для начала (если только вы не пытаетесь выполнить SSH из той же сети). И для брандмауэра должно быть определено правило брандмауэра tcp/22, которое затем можно применить в качестве «метки» к сетевому интерфейсу, которому назначен этот внешний IP-адрес.

Обратное работает с gcloud app instances ssh:

SSH в виртуальную машину App Engine. Гибкий экземпляр

.

, что может потребовать меньших усилий и затрат на настройку, поскольку на виртуальной машине GCP обычно установлено gcloud.

0 голосов
/ 27 мая 2019

Вы можете использовать ssh2 , чтобы сделать это в nodejs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...