【问题标题】:I can only connect once through SSH into my GCE VM instance我只能通过 SSH 连接到我的 GCE VM 实例一次
【发布时间】:2020-07-24 15:31:54
【问题描述】:

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

如果我尝试执行以下操作,我会通过 SSH 连接到实例 1 并进入实例 1:

  • 再次通过 SSH 连接到实例 1
  • SSH 到实例 2

我将收到“权限被拒绝(公钥)”。错误。

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

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

【问题讨论】:

  • 在您的故事中,您说“我通过 SSH 连接到 instance-1 ...”...您能否验证当您这么说时,您的意思是您正在点击 GCP Console 网页中的 SSH 按钮与目标 VM 关联的页面而不是其他故事?

标签: ssh google-cloud-platform google-compute-engine


【解决方案1】:

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

现在回答您的问题……假设您已登录到目标 VM。如果您尝试通过 SSH 连接回该虚拟机,或者尝试从其他地方通过 SSH 连接至该虚拟机……您的私钥在哪里?答案是您无权访问它。记住……为了使用 SSH,有一个密钥对。公钥和私钥。公钥对 SSH 的目标是已知的,而对应的私钥对 SSH 客户端必须是已知的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      相关资源
      最近更新 更多