使用NodeJS SSH到Google Compute实例,不带gcloud

时间:2019-05-27 06:56:22

标签: google-compute-engine

我正在尝试从未安装gcloud的环境(App Engine标准NodeJS环境)创建到计算实例的SSH隧道。

需要执行哪些步骤? gcloud compute ssh命令如何执行?已经有一个NodeJS库了吗?

4 个答案:

答案 0 :(得分:1)

“ gcloud compute ssh”为用户生成持久的SSH密钥。公用密钥存储在项目或实例SSH密钥元数据中,来宾环境创建必要的本地用户,并将〜/ .ssh / authorized_keys放置在其主目录中。 您可以手动将公钥添加到实例,然后使用节点ssh库1通过ssh连接到它。 或者,您可以在创建实例时为实例设置启动脚本2。 正如Cloud Ace指出的那样,您可以使用ssh2模块3来实现node.js兼容性。


答案 1 :(得分:0)

您可以使用ssh2在nodejs中执行该操作。

答案 2 :(得分:0)

通常,您需要保留并分配一个static external IP address(除非尝试从同一网络内进行SSH)。并且需要为端口tcp/22定义防火墙规则,然后可以将其作为“标签”应用到分配了外部IP的网络接口。

gcloud app instances ssh配合使用的另一种方法:

  

SSH进入App Engine Flexible实例的虚拟机

这可能会减少设置工作量和成本,因为GCP VM通常安装了gcloud

答案 3 :(得分:0)

我创建了执行必要步骤的软件包gcloud-ssh-tunnel

  1. 使用sshpk
  2. 创建私钥/公钥
  3. 使用OS Login API
  4. 导入公共密钥
  5. 使用ssh2进行SSH(并专门创建一个隧道,因为这是我需要的用例-请参阅软件包中的Why?部分)
  6. 使用OS Login API删除公钥(不会使帐户溢出或保留安全访问权限)