1

我已经在这个网站上解决了大多数关于这个问题的问题,但似乎没有任何帮助。基本上我要做的是通过 Google 提供的 bdutil 脚本在我的 VM 上实例化一个 Hadoop 实例,但是问题似乎与我无法 ssh 进入 VM 实例的事实有关。

我已经为此苦苦挣扎了几天,所以我非常感谢您的帮助。

以下是我遵循的步骤:

为了引导您完成这些步骤,我刚刚创建了一个新 VM

我可以毫无问题地通过开发人员的控制台进行 SSH

以下显示系统信息和操作系统:

uname –a Linux 群岛-vm1 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014

tail /etc/redhat-release tail: inotify 无法使用,恢复轮询CentOS release 6.5 (Final)

VM 已设置为允许 http 和 https 连接

在我的 windows 机器(window 8.1 专业版)上,我删除了所有以前创建的 SSH 文件,以允许创建新文件我还删除了项目中所有以前创建的密钥(那里有很多垃圾,因为我一直在尝试几件事让它工作)

然后我使用 gcloud Auth Login 授权给新的虚拟机

这工作正常,我获得授权并登录

我可以使用 gcloud 计算实例列表查看实例

然后我尝试通过 SSH 连接到实例

它说它正在生成我的 SSH 密钥,并且在我的机器和 VM 实例上都生成了

但是它不能通过 SSH 连接到机器注意:我已经尝试过使用密码和不使用密码,在这种情况下我将其留空

我收到的错误是没有支持的身份验证方法可用

当我检查文件时,它们是在我的机器上以及元数据/ssh 密钥部分的项目中创建的

当我比较机器上的 .pub 文件和 vm 上的密钥时,这两个密钥是相同的,我还尝试将密钥添加到特定于 vm 实例的 SSH 密钥中,但没有成功

有趣的是,当我在我的机器上使用腻子时,我可以使用 C:\Users\cleveen.ssh\google_compute_engine.ppk 文件毫无问题地登录

所以最初我想,没问题,我只使用我的腻子,但是当我尝试运行 bdutil 脚本来实例化 Hadoop 时,它给了我错误,我没有通过 gcutil 登录并且不会运行脚本,所以我然后登录通过开发人员控制台,它仍然无法运行(同样的错误)

然后我进入 sshd_config 文件并允许密码登录,为我的帐户设置密码,然后 gcloud SSH,允许我通过密码登录没有问题。

但是,当我运行脚本时,它创建了 Hadoop 所需的所有实例和驱动器,但是脚本因 SSH 公钥错误而失败,我永远无法完成它。

不幸的是,当我删除了它们所在的实例时,我没有来自该脚本的日志文件;如果查看这些日志对您有帮助,我可以再次执行这些步骤。

然而,这一切似乎都与使用密钥文件的 SSH 进程不起作用有关

如果我可以提供任何其他信息,请告诉我再次感谢您的帮助

4

3 回答 3

1

您可以通过以下方式从 Windows 机器 ssh 到 GCE 实例:

  1. 删除所有以前的python版本,删除Users\yourusername下的文件夹“.ssh”并删除以前的Program Files\Google目录
  2. 安装最新的 Windows 版本的 Cloud SDK 并接受安装 python 2.7。 https://cloud.google.com/compute/docs/gcloud-compute/#install
  3. 以管理员身份打开 Google Cloud SDK shell 并执行 $ gcloud auth login
  4. gcloud 计算 ssh 到您选择的虚拟机(注意:这会失败,但会在您的 Windows 机器上创建 Google Cloud ssh 密钥)
  5. 在 Program Files\Google\Cloud SDK\google-cloud-sdk\bin\sdk\ssh-term 中打开 Cloud SDK 自带的 putty 版本
  6. 在 Putty 中指定您的密钥:选择 Connection、SSH、Auth,单击“浏览”,从 Users\yourusername.ssh 中选择密钥
  7. 在 Putty 中,单击“会话”插入 VM 的 IP 并连接(使用您的 Windows 用户名作为“登录身份”)您可以在公钥末尾找到此用户名。
于 2014-12-11T11:16:49.607 回答
1

所以,听起来这里有几个问题在起作用:

  1. bdutil 仍然使用gcutil ssh代替gcloud compute ssh(但工作正在进行中以升级到使用 gcloud 计算 ssh),因此即使您可以配置本地环境以使其gcloud compute ssh工作,bdutil 仍然需要gcutil ssh工作才能部署 Hadoop 集群 - 请注意,在大多数在这种情况下,这两个不同的命令功能相同。

  2. 从 cmd.exe 或 Putty 运行并没有为“gcutil”充分设置环境;传统上,说明包括安装“cygwin”以提供运行 Google Cloud SDK 工具的 posix 环境。

您可以看到有关需要 cygwin 的“gcutil ssh”的相关 stackoverflow 帖子:无法从命令行运行 gcutil

因此,如果您确保已安装 cygwin,然后使用 cygwin shell(不是 cmd.exe 或 Putty),则确保“gcutil ssh”在没有密码短语的情况下工作,然后 bdutil 应该从那时起在 cygwin 中工作。

一种替代方法是启动一个运行 debian-7 之类的 n1-standard-1 虚拟机作为“bdutil 运行器”,确保单击“高级设置”并启用云存储和计算引擎“服务帐户”。在“bdutil runner”中,您可以通过键入来配置自己的“gcutil ssh”功能

gcutil ssh `hostname`

并在提示您时保持密码为空,然后使用该 VM 运行您的部署。

于 2014-09-22T22:52:15.500 回答
0

1)检查 .ssh 目录权限,在您的目录上尝试sudo chmod -R 700 .ssh如果导致问题,它可能会对您有所帮助

于 2014-09-19T05:44:06.180 回答