所以我在GCP中创建了一个全新的项目,在默认的VPC网络和默认的防火墙规则中创建了2个VM。
如果尝试执行以下操作,我将SSH进入实例1,然后一次进入实例1:
我将获得“权限被拒绝(公钥)”。错误。
GCP幕后发生了什么?我看到SSH密钥是在元数据中创建的,我只是不明白如何无法再次对同一个实例或我的另一个实例进行SSH。
我知道在实例的元数据中添加公钥将使我能够做到这一点,我想了解为什么我无法递归地将SSH SSH到实例中。
答案 0 :(得分:1)
在GCP中创建VM时,将看到一个标记为SSH的按钮。单击该按钮时,您将看到一个shell窗口打开,并且将使用SSH协议/技术登录。正在发生的情况是正在创建SSH公钥/私钥对。将公钥复制到与VM实例关联的元数据中。私钥永远不会公开。而是由与您的项目和GCP身份(joe@gmail.com)相关联的Google持有。这意味着,当您(joe@gmail.com)单击SSH按钮时,将检索私钥(由Google持有)并用于通过相应的公钥与虚拟机建立连接。
现在是您的问题了……假设您已登录到目标VM。如果您尝试通过SSH重新登录到该VM或尝试从其他地方通过SSH登录到该VM ...您的私钥在哪里?答案是您无权访问。请记住...为了使用SSH,有一个密钥对。公钥和私钥。 SSH的目标知道公钥,SSH客户端必须知道相应的私钥。
答案 1 :(得分:0)
由于您没有与其他实例相关联的私钥,因此无法递归地通过SSH进入我的实例。