我只能通过SSH连接一次我的GCE VM实例

我只能通过SSH连接一次我的GCE VM实例,ssh,google-cloud-platform,google-compute-engine,Ssh,Google Cloud Platform,Google Compute Engine,所以我在GCP中创建了一个全新的项目,我在默认的VPC网络中创建了两个虚拟机,一个默认的防火墙规则 如果我尝试执行以下操作,我将SSH连接到instance-1中,并在instance-1中运行一次: 再次将SSH连接到实例1中 SSH到实例2 我将收到“权限被拒绝(公钥)。”错误 GCP幕后发生了什么?我可以看到SSH密钥是在元数据中创建的,我只是不明白为什么我不能再次SSH到同一个实例或我的其他实例 我知道在实例的元数据中添加公钥将允许我这样做,我想了解为什么我无法递归地将SSH添加到实

所以我在GCP中创建了一个全新的项目,我在默认的VPC网络中创建了两个虚拟机,一个默认的防火墙规则

如果我尝试执行以下操作,我将SSH连接到instance-1中,并在instance-1中运行一次:

  • 再次将SSH连接到实例1中
  • SSH到实例2
我将收到“权限被拒绝(公钥)。”错误

GCP幕后发生了什么?我可以看到SSH密钥是在元数据中创建的,我只是不明白为什么我不能再次SSH到同一个实例或我的其他实例


我知道在实例的元数据中添加公钥将允许我这样做,我想了解为什么我无法递归地将SSH添加到实例中。

在GCP中创建VM时,您将看到一个标记为SSH的按钮。单击该按钮时,您将看到一个shell窗口打开,您将使用SSH协议/技术登录。正在发生的是正在创建SSH公钥/私钥对。公钥被复制到与VM实例关联的元数据中。私钥永远不会公开。相反,它由谷歌持有,与你的项目和你的GCP身份相关(joe@gmail.com). 这意味着当你(joe@gmail.com)单击SSH按钮,将检索私钥(由Google持有),并使用相应的公钥与VM建立连接


现在谈谈你的问题。。。假设您已登录到目标VM。如果您尝试通过SSH返回到该VM,或者尝试从其他地方通过SSH返回到该VM。。。你的私钥在哪里?答案是你无法访问它。记得。。。为了使用SSH,有一个密钥对。公钥和私钥。SSH的目标知道公钥,SSH客户端必须知道相应的私钥。

您无法递归地SSH到我的实例中,因为您没有与其他实例关联的私钥。

在您的故事中,您说“我SSH到实例1…”。。。您是否可以验证,当您这样说时,您的意思是您正在单击与目标VM相关联的GCP控制台网页中的SSH按钮,而不是其他故事?