我是 Hadoop 的新手,我正在尝试以完全分布式模式设置 Hadoop 集群。我的主计算机是 Windows,从计算机是运行在 VM 上的 Linux。我在 Windows 和 Linux 中都创建了 SSH 密钥,并将公钥从主 Windows 计算机复制到 Linux 从计算机。因此,我可以使用以下命令从 Windows SSH 到 Linux,而无需输入密码
ssh [email protected]
其中 10.0.0.227 是我的从属 Linux 机器的 IP 地址,我可以从 Windows 访问 Linux。但是当我尝试以另一种方式(从我的从属 Linux 到我的主 Windows 进行 SSh)时,我无法连接,并收到以下错误:
sriram@sriram-virtual-machine:~$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied (publickey,password,keyboard-interactive).
sriram@sriram-virtual-machine:~$
其中 10.0.0.202 是我的主 Windows 机器的 IP 地址。
我尝试将公钥从 Linux 复制到 Windows,但同样无法做到
sriram@sriram-virtual-machine:~$ ssh-copy-id -i /home/sriram/.ssh/id_rsa.pub
[email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are
prompted now it is to install the new keys
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied (publickey,password,keyboard-interactive).
你能指导我一下吗,因为我现在很困惑。让 SSH 单独从主服务器到从服务器工作是否可行,还是必须让 SSH 双向工作(主服务器到从服务器和从服务器到主服务器)才能让 Hadoop 以伪分发模式运行?请告诉我我哪里做错了。我想不使用密码连接
我在 Windows 中使用 cygwin,并使用它在 Windows 中创建了 SSH 和密钥。我没有 Putty 等外部客户端。创建密钥后,我能够从 Windows(主服务器)连接到 Linux(从服务器)。
抱歉,我错误地更新了 IP 地址。现在我已经更新了。10.0.0.227 是我的主计算机 (Windows) 的 IP 地址 10.0.0.203 是我的从计算机 (Linux) 的 IP 地址。
答案1
抱歉,将此作为“答案”发布,但我在这个论坛上的声誉还不够,无法添加评论。
这个问题的关键(请原谅我的双关语)似乎是,了解 Windows 系统上提供 SSH 服务的内容是什么——与类 Unix 系统不同,Windows 还没有内置 SSH 服务。显然,您确实有一个在 10.0.0.203 上运行的 SSH 服务器,否则您会收到“连接被拒绝”错误。
如果它是类似 Cygwin SSH 服务器的东西,您将需要将 VM 中您的帐户的公钥(文件是 ~/.ssh/id_rsa.pub 或类似文件)复制到 sriram 帐户的 .ssh/authorized_keys 文件中,就 Windows SSH 服务器而言。
但是,这可能不是必需的,因为我很确定 Hadoop 只使用主->从连接来启动服务,并且其他通信不通过 SSH 运行。