如何为新的Google计算引擎实例获取ssh密钥?

如何为新的Google计算引擎实例获取ssh密钥?,ssh,virtual-machine,google-compute-engine,ssh-keys,Ssh,Virtual Machine,Google Compute Engine,Ssh Keys,我是来自AmazonEC2世界的新Google云试用用户,对于如何通过ssh登录到新的Google ComputeEngine VM实例,我完全感到困惑 我通过GoogleCloudWeb控制台创建了一个新实例(如果需要的话,可以从CentOS 6.x图像中创建)。我在创建表单上看到一个空白,我可以在其中粘贴现有的ssh密钥,但由于这是我的第一个实例,我还没有一个。我认为它会像AmazonEC2一样完成密钥创建过程。没有。它似乎已经创建了这个实例,但我不知道如何获取它的ssh密钥。实例web页面

我是来自AmazonEC2世界的新Google云试用用户,对于如何通过ssh登录到新的Google ComputeEngine VM实例,我完全感到困惑

我通过GoogleCloudWeb控制台创建了一个新实例(如果需要的话,可以从CentOS 6.x图像中创建)。我在创建表单上看到一个空白,我可以在其中粘贴现有的ssh密钥,但由于这是我的第一个实例,我还没有一个。我认为它会像AmazonEC2一样完成密钥创建过程。没有。它似乎已经创建了这个实例,但我不知道如何获取它的ssh密钥。实例web页面有一个按钮,上面写着“ssh”,它让我通过一个弹出的web浏览器窗口短暂登录,该窗口模拟ssh会话。但是,它只允许我进入用户级别的帐户,而不是root帐户。弹出窗口中有一个菜单项可以更改用户,我将其更改为“root”,之后它只会生成连接错误,现在我根本无法登录到我的实例

我已经搜索过了,但找不到任何直接的文档来解释google compute实例的这一方面。我搜索了web控制台,但找不到ssh密钥创建/选择机制,也找不到为实例创建或下载密钥的任何方法


我是否必须在创建过程中手动创建自己的ssh密钥并将它们粘贴到表单中,或者我是否缺少其他明显的步骤?

默认情况下,新的Google Compute Engine(GCE)VM实例没有预先分配的ssh密钥,因此您无法“检索”它们,因为它们不存在。创建它们取决于您,或者使用类似于
gcloud
(见下文)的工具,如果您还没有SSH密钥,该工具将提示您创建它们

您有几个选项可以连接到新创建的GCE虚拟机

一个选项是使用实例列表中实例旁边的开发人员控制台GUI中的“SSH”按钮进行连接,这将打开一个浏览器窗口和到该实例的终端会话

如果您想通过命令行上的SSH客户端进行连接,可以使用
gcloud
工具(该工具的一部分):

您可以在帮助页面上看到完整的标志和选项集,以及几个示例

如果您还没有SSH密钥,它将提示您创建它们,然后连接到实例。如果您已经有密钥,那么可以使用现有的SSH密钥,它会将这些密钥传输到实例

默认情况下,
gcloud
希望键位于以下路径:

  • $HOME/.ssh/google\u compute\u引擎
    –私钥
  • $HOME/.ssh/google\u compute\u engine.pub
    –公钥
如果您想使用“代码> g云< /COD>”从不同的位置重用密钥,请考虑使用SigLink或指向<代码> g云< /C> >使用标志。< /P> 注意:如果您根本不使用
gcloud
,您必须手动将SSH密钥添加到实例的元数据中,如中所述,您可以通过
gcloud
或手动通过

您还可以使用
ssh-keygen
创建自己的密钥,这也是
gcloud
在封面下也将使用的密钥。您可以连接到实例,而不是
gcloud
,但需要指定额外的参数:

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
    -o CheckHostIP=no -o StrictHostKeyChecking=no \
    USER@IP_ADDRESS
这将需要以下参数:

  • 密钥文件
    –[必需]密钥存储在计算机上的文件,例如,
    ~/.ssh/google\u compute\u引擎

  • USER
    –[必需]登录该实例的用户名。通常,这是运行
    gcloud compute
    的本地用户的用户名

  • IP\u地址
    –[必需]实例的外部IP地址


有关更多详细信息,请参阅。

打开控制台后,尝试在ssh选项卡中查看gcloud命令。gcloud客户端将使用以下命令打开

gcloud计算--项目ssh--区域

如果是第一次,它将为您创建ssh密钥。您只需要使用右上角的gcloud client download file选项在~/.ssh/google_compute_引擎的这个位置下载文件。一旦您有了密钥文件,只需发出


ssh-iusername@external_IP

使用ssh登录实例-[在Linux Ubuntu 16.04上执行的所有步骤]

  • 在这里创建一个SSH密钥
    SSH keygen-t rsa-f~/.SSH/gcloud\u instance1-C varunon9
    gcloud\u instance1
    是密钥文件的名称,
    varunon9
    是用户名

  • 打印公钥文件
    cd~/.ssh&&cat gcloud\u instance1.pub的内容

  • 单击编辑VM实例详细信息图标

  • 在ssh密钥文本区域中粘贴公钥文件的内容(输出
    cd~/.ssh&&cat gcloud\u instance1.pub

  • 点击保存

  • 现在,您可以从终端通过ssh
    ssh-i gcloud\u instance1登录到您的实例varunon9@35.200.201.56
    其中
    gcloud\u instance1
    是私钥文件(在.ssh目录中),
    varunon9
    是用户名,
    35.200.201.56
    是实例的外部IP


  • 为多个实例创建和使用一对ssh密钥的最简单方法:

    第1步:从以下位置安装腻子和腻子

    步骤2:在本地台式机/笔记本电脑中打开终端(在Windows 10及更高版本中,使用Windows Linux子系统)

    类型:ssh-keygen

    在提示下输入文件名的名称:例如google_key

    将创建2个文件google_key和google_key.pub

    第3步:复制google_key.pub的全部内容

    注意,没有新行字符。它应该在一行中

    步骤4:在创建任何VM实例之前,请转到

    选择“
    ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
        -o CheckHostIP=no -o StrictHostKeyChecking=no \
        USER@IP_ADDRESS
    
    gcloud compute config-ssh