无法SSH到VM导致使用bdutil进行Hadoop安装时出现问题

时间:2014-09-18 22:10:41

标签: hadoop ssh google-compute-engine google-cloud-platform google-hadoop

我在这个网站上经历过围绕这个问题的大部分问题,但似乎没有什么帮助我。基本上我要做的是通过Google提供的bdutil脚本在我的VM上实例化Hadoop实例,但问题似乎与我无法进入VM实例的事实有关。

我一直在努力解决这个问题几天,所以我非常感谢你的帮助。

以下是我遵循的步骤:

为了引导您完成我刚创建新VM的步骤

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

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

uname -a Linux archipelago-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不能使用,恢复到pollingCentOS版本6.5(最终版)

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

在我的Windows机器上(窗口8.1专业版) 我删除了所有以前创建的SSH文件,以允许创建新文件 我还删除了项目中之前创建的所有密钥(那里有很多垃圾,因为我一直在尝试几种方法来使其工作)

然后我使用gcloud Auth Login

授权新VM

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

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

查看实例

然后我尝试SSH进入实例

它表示它正在生成我的SSH密钥,它在我的机器和VM实例上都会生成

然而它无法SSH进入机器 注意: 我用传递短语和没有密码短语尝试了这个,在这个例子中我把它留空了

我收到的错误是不支持的身份验证方法

当我检查他们在两个地方创建的文件时 在我的机器上以及元数据/ ssh键部分中的项目

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

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

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

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

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

不幸的是,我没有这个脚本的日志文件,因为我删除了它们所在的实例;如果你能看到这些日志,我可以再次通过这些步骤。

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

有关

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

3 个答案:

答案 0 :(得分:1)

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

  1. bdutil仍然使用gcutil ssh而不是gcloud compute ssh(但正在进行升级到使用gcloud compute ssh的工作),所以即使您可以配置本地环境来制作{{ 1}} work,bdutil仍需要gcloud compute ssh才能部署Hadoop集群 - 请注意,在大多数情况下,这两个不同的命令的功能相同。

  2. 从cmd.exe或Putty运行并没有为" gcutil&#34 ;;提供充分的环境设置。传统上,指令包括安装" cygwin"提供运行Google Cloud SDK工具的posix环境。

  3. 您可以在" gcutil ssh":Unable to run gcutil from command line

    中看到关于需要cygwin的相关stackoverflow帖子

    所以,如果你确定安装了cygwin,然后使用cygwin shell(不是cmd.exe或Putty),你可以确保" gcutil ssh"没有密码短语,那么bdutil应该从cygwin开始工作。

    另一种方法是启动一个运行像debian-7这样的n1-standard-1虚拟机作为你的" bdutil跑步者",确保点击"高级设置"并启用云存储和计算引擎"服务帐户"。在那个" bdutil runner"里面,你可以配置自己的能力来实现" gcutil ssh"输入

    gcutil ssh

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

1)检查.ssh目录权限,在你的目录上尝试 sudo chmod -R 700 .ssh 可能会对你造成问题有所帮助