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

无法SSH到VM,导致使用bdutil安装Hadoop时出现问题,hadoop,ssh,google-compute-engine,google-cloud-platform,google-hadoop,Hadoop,Ssh,Google Compute Engine,Google Cloud Platform,Google Hadoop,我已经在这个网站上通过了关于这个问题的大多数问题,但是似乎没有什么对我有帮助。基本上,我正在尝试通过Google提供的bdutil脚本在我的VM上实例化一个Hadoop实例,但是问题似乎与我无法ssh到VM实例有关 我已经为此挣扎了几天,所以我非常感谢你的帮助 以下是我遵循的步骤: 为了引导您完成这些步骤,我刚刚创建了一个新的VM 我能够通过开发者的控制台SSH,没有问题 以下显示了系统信息和操作系统: 联埃特派团-a Linux archipelago-vm1 2.6.32-431.20.3.

我已经在这个网站上通过了关于这个问题的大多数问题,但是似乎没有什么对我有帮助。基本上,我正在尝试通过Google提供的bdutil脚本在我的VM上实例化一个Hadoop实例,但是问题似乎与我无法ssh到VM实例有关

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

以下是我遵循的步骤:

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

我能够通过开发者的控制台SSH,没有问题

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

联埃特派团-a Linux archipelago-vm1 2.6.32-431.20.3.el6.x86#64#1 SMP周四6月19日21:14:45 UTC 2014

尾部/etc/redhat释放 尾部:无法使用inotify,返回pollingCentOS 6.5版(最终版)

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

在我的windows计算机上(windows 8.1 professional) 我删除了所有以前创建的SSH文件,以允许创建新文件 我还删除了项目中所有以前创建的键(有很多垃圾,因为我一直在尝试几种方法使其工作)

然后,我使用gcloudauth登录对新VM进行了授权

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

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

然后我尝试SSH到实例中

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

但是,它不能SSH到机器中 注: 我试过使用通行短语和不使用通行短语,在这个例子中我将其留空

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

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

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

有趣的是,当我在我的机器上使用putty时,我可以使用 C:\Users\cleven.ssh\google\u compute\u engine.ppk文件

所以最初我想,没问题,我只使用putty,但是当我试图运行bdutil脚本来实例化Hadoop时,它给了我一个错误,我没有通过gcutil登录,也不会运行脚本,所以我随后通过开发者控制台登录,它仍然不会运行(相同的错误)

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

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

不幸的是,我没有这个脚本中的日志文件,因为我删除了它们所在的实例;如果您看到这些日志会有所帮助,我可以再次执行这些步骤

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

请让我知道,如果我可以提供任何其他信息
再次感谢您在这方面的帮助

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

因此,这里似乎存在一些问题:

  • bdutil仍然使用
    gcutil ssh
    而不是
    gcloud compute ssh
    (但升级到使用gcloud compute ssh的工作正在进行中),因此即使您可以配置本地环境使
    gcloud compute ssh
    工作,为了部署Hadoop集群,bdutil仍然需要
    gcutil ssh
    才能工作——请注意,在大多数情况下,这两个不同的命令的功能相同

  • 从cmd.exe或Putty运行不会充分设置“gcutil”的环境;传统上,这些说明包括安装“cygwin”以提供一个posix环境,在其中运行Google Cloud SDK工具

  • 您可以看到关于“gcutil ssh”需要cygwin的相关stackoverflow帖子:

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

    另一种选择是启动一个运行类似debian-7的n1-standard-1虚拟机作为“bdutil运行程序”,确保单击“高级设置”并启用云存储和计算引擎“服务帐户”。在“bdutil运行程序”中,您可以通过键入

    gcutil ssh `hostname`
    

    并在提示时将密码短语保留为空,然后使用该VM运行部署。

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

  • 删除所有以前的python版本,删除Users\yourusername下的文件夹“.ssh”,并删除以前的程序文件\Google目录
  • 安装云SDK的最新Windows版本,并接受安装python 2.7。
  • 以管理员身份打开Google Cloud SDK外壳并执行$gcloud auth login
  • gcloud计算ssh到您选择的VM(注意:这将失败,但将在您的windows计算机上创建Google Cloud ssh密钥)
  • 在Program Files\Google\Cloud SDK\Google Cloud SDK\bin\SDK\ssh术语中打开云SDK附带的putty版本
  • 在Putty中指定密钥:选择连接、SSH、身份验证,单击“浏览”,从Users\yourusername.SSH中选择密钥
  • 在Putty中,单击“会话”插入虚拟机的IP并连接(使用Windows)