【问题标题】:Unable to SSH into VM causing problems with Hadoop install using bdutil无法通过 SSH 连接到 VM,导致使用 bdutil 安装 Hadoop 出现问题
【发布时间】:2014-09-18 22:10:40
【问题描述】:

我已经在这个网站上解决了关于这个问题的大部分问题,但似乎没有任何帮助。基本上我要做的是通过 Google 提供的 bdutil 脚本在我的 VM 上实例化一个 Hadoop 实例,但是问题似乎与我无法 ssh 进入 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 向新 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 进程不起作用有关

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    您可以查看有关需要 cygwin 用于“gcutil ssh”的相关 stackoverflow 帖子:Unable to run gcutil from command line

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

    另一种方法是启动单个 n1-standard-1 虚拟机,运行类似 debian-7 的东西作为“bdutil runner”,确保点击“高级设置”并同时启用 Cloud Storage 和 Compute Engine“服务帐目”。在那个“bdutil runner”中,你可以通过键入来配置它自己的“gcutil ssh”能力

    gcutil ssh `hostname`
    

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

    【讨论】:

      【解决方案2】:

      您可以通过以下方式从 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 到您选择的 VM(注意:这会失败,但会在您的 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 用户名作为“登录身份”)您可以在公钥末尾找到此用户名。

      【讨论】:

        【解决方案3】:

        1) 检查 .ssh 目录权限,在您的目录上尝试 sudo chmod -R 700 .ssh 可能会帮助您解决问题

        【讨论】:

          猜你喜欢
          • 2021-03-30
          • 1970-01-01
          • 1970-01-01
          • 2021-01-15
          • 2021-06-18
          • 1970-01-01
          • 1970-01-01
          • 2017-08-21
          • 2013-10-29
          相关资源
          最近更新 更多