Google Compute Engine:尝试连接到实例

时间:2016-02-16 10:17:40

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

最后几天我最努力地从家用计算机到Google计算引擎实例运行ssh连接,但无法实现。不幸的是,来自互联网的搜索结果也没有帮助我,所以我会请你们帮忙:)。每个答案/建议都受到高度赞赏。

我的统计信息:

家庭电脑:

  • 操作系统是Windows 7

  • 首页 - 计算机用户名与我的Google云帐户名称

  • 不同

Google实例:

  • n1-standard-1,europe-west1-b
  • 操作系统:Debian GNU / Linux 8.3(jessie)[默认值]
  • 外部/静态IP:已激活
  • 允许的HTTP流量
  • 允许的HTTPS流量

其他:

  • 这是我的第一次Google云体验

  • 我还在免费试用期@ Google cloud plattform

  • 我安装了Putty,Google SDK和Python 2.7

到目前为止我做过/尝试过的事情:

首先,我尝试使用带有以下命令的Google shell连接到我的实例:

gcloud compute ssh instance_name --zone europe-west1-b

shell让我生成shh-keys,我回答“是”,我在C:\ Users \ Lodrik.ssh \目录中获得了一个私有+公钥。但是,在尝试连接时,我收到了错误消息:

  

致命错误:已断开连接:没有可用的支持身份验证方法    (服务器发送:publickey)

[Error_Pic] [1] // sry,因为我有< 10个声誉点

其次,我认为可能存在问题,因为我的Google帐户中的用户名和家用电脑的用户名不同。因此,我尝试使用我的家用电脑用户名连接到我的实例。

gcloud compute ssh Lodrik@instance_name --zone europe-west1-b

结果,我刚收到一条错误信息(再次--.-)。但是,这次是不同的。打开了一个Putty shell,其中包含以下消息:

  

使用用户名“Lodrik”。服务器拒绝了我们的密钥。

[Error_Pic_2] [2] // sry,因为我有<不工作10个声誉点

最后,我在stackoverflow上搜索了我的问题,找到了这个帖子(类似的问题+答案):Cannot connect to Compute Engine instance via SSH

因此,我按照线程答案中的步骤进行了操作:

1)我通过Google云平台的网络信息中心手动添加了我的公钥(来自〜/ Lodrik / .shh /)

2)我复制了显示的用户名(来自这个添加的公钥)和我的实例的IP地址,并将它们输入到putty中(如答案中所述)

3)我试图通过putty连接到我的实例

结果,打开了一个shell窗口并询问我的登录名。但是,无论我输入什么名称,我都会收到错误消息:

  

服务器拒绝了我们的密钥。

Error_Pic_3

问题:

  • 任何想法我做错了什么?

  • 为什么我必须手动添加密钥?不应该是自动的吗?

非常感谢你的帮助。如果您需要更多信息,请询问。我很乐意为您提供:)

祝贺,

Lodrik

2 个答案:

答案 0 :(得分:1)

最新的Google Cloud SDK版本存在一个已知问题,即新创建的密钥格式错误导致SSH问题。我们的工程团队正在努力将其作为重中之重。为了暂时解决问题,我建议降级Gcloud版本,创建密钥并再次更新。可以通过执行以下操作来完成:

1- Delete the .ssh folder created on your local machine
2- From the command line, run the following command:
gcloud components update --version 91.0.0
3- Once done, run the following command to create your keys:
gcloud compute ssh INSTANCE_NAME
NB: you might not be able to ssh but your keys will be created
4- Run the following command:
gcloud components update
5- Authenticate to your project:
gcloud auth login
6- Try to ssh again by running:
gcloud compute ssh INSTANCE_NAME

另一种解决方法是通过单击实例名称旁边的SSH按钮从浏览器中的cloud console进行ssh。

<强>更新

公共问题跟踪器已开启here,问题现已解决。

答案 1 :(得分:0)

SSH连接错误“没有可用的支持身份验证方法 - 服务器拒绝了我们的密钥” - 可能是由错误的SSH用户名引起的(它可能使用您的Windows用户名来尝试登录)。

按照以下步骤使用SSH客户端正确登录GCE:

  1. 按下GCE instances中的SSH按钮后,从Web控制台窗口复制授权的SSH用户名。

  2. 运行PuttyGen以创建私钥和公钥:

  3. enter image description here

    1. 点击“生成”。

    2. 在“关键评论”中输入您的GCE授权用户名

    3. 输入要用于身份验证的任何密码。

    4. 将私钥(ppk文件)保存在本地(私人)计算机上。

    5. 复制公钥下的所有内容。

    6. 将其粘贴到GCE Metadeta SSH Keys

    7. 中的新SSH密钥中
    8. 打开Putty(或您使用的任何SSH客户端),并使用以下命令创建新的SSH会话:

      • IP = GCE实例外部IP(如果您没有看到,请确保edit your instance并将其添加到“网络接口”下)
      • SSH&gt; Auth&gt;私钥文件=之前保存的ppk文件。
    9. 打开SSH会话以登录您的实例 - 现在应该提示您输入您之前定义的用户名和密码。