无法使用"在浏览器中连接到Google Compute Engine" SSH

时间:2015-01-20 13:37:55

标签: ssh google-compute-engine

更改了两个密码root和默认用户后,我们突然注意到Google Compute Engine上的“浏览器中”链接无法通过SSH连接。

然而,奇怪的是,如果我们使用Google提供的命令行中的SSH命令(即$ gcloud compute ssh VM-NAME --zone VM-ZONE) - SSH可以运行。

看来SSH正在运行 - 但“在浏览器中”SSH链接不再连接。可能出现了什么问题以及我们如何解决这个问题?

附录: 值得注意的是,下面的评论者表示它与密码无关,而是纯粹的SSH密钥 - 所以如果有一种方法可以在GCE实例上重新生成SSH密钥,那么它看起来可能会解决这个问题。我们正在寻找。如果有人知道为GCE重新生成SSH密钥的代码,请发布。

2 个答案:

答案 0 :(得分:1)

默认情况下,GCE VM不允许使用明文密码进行SSH连接:它使用密钥代替。您可以在VM实例化期间或稍后指定已批准的密钥,但始终存在的密钥是创建计算机时使用的用户帐户的关键。

只要你没有修改/ etc / ssh / sshd_config,就应该继续这样。无论哪种方式,您可以使用另一个通过SSH连接到您的实例的选项是运行以下命令:

$ gcloud compute ssh VM-NAME --zone VM-ZONE

使用您的授权用户帐户登录。

ADDENDUM - 您可以在项目以及VM级别上添加其他本地生成的SSH密钥,而不是重新生成以前的密钥。第一个适用于所有VM并授予对项目所有者和编辑者的访问权限,而第二个仅适用于相关VM。这两种方法都会将输入的SSH添加到元数据服务器,在SSH连接到所有/ VM之前,将从上传到VM。

您可以从开发者控制台执行此操作:

  • 项目级SSH密钥 - 转到您的项目 - >计算 - >计算引擎 - >元数据 - > “SSH KEYS”(屏幕顶部) - >点击“编辑”

  • 虚拟机级别的SSH密钥 - 转到您的项目 - >计算 - >计算引擎 - > VM实例 - >点击实例名称 - > “SSH密钥”部分(向下滚动) - >单击“添加SSH密钥”

答案 1 :(得分:0)

我们发现原因是我们在Google Compute Engine实例上创建的主要用户的目录上执行的 chown 命令。

通过将这个chown转回Google创建的用户,Google的浏览器内部SSH再次开始工作。

我们在整个用户目录中使用chown,并使用以下命令将ssh配置文件反馈给Google创建的用户:

chown -R user_name_com /home/user_name_com  

以及此文件

chown user_name_com /etc/ssh/ssh_config 

其中user_name_com是我们的Gmail电子邮件地址用户。