为什么 windows7 x86 上的 SSH 服务器失败,而 SSH 客户端正常工作

Why SSH server on windows7 x86 failed, while SSH client working

我最近正在 windows7 OS 上构建 Hadoop 环境。但是,我陷入了 SSH 配置,它阻止了 Hadoop 的所有剩余工作。我相信这与Hadoop无关,所以任何熟悉SSH的人都可以帮我一个忙。

事情是这样的,我正在尝试为两台计算机安装 SSH 服务,以便任何一台都可以与另一台进行通信。我已经通过cygwin成功为我的PC安装了SSH,它是win7-x64。但是,当我在另一台计算机上重复它时,它是一台win7-x86的服务器,SSH服务器失败,而客户端可以工作,我完全糊涂了。

对于我的电脑,我安装了 cygwin 来使用 SSH 服务。 ssh localhost 工作正常。在生成 ssh 密钥并将其附加到 authorized_keys 之后,我成功地在没有密码的情况下登录了我的电脑。

我把我PC上的cygwin文件夹复制到服务器上,服务器没有联网,所以不能直接安装cygwin。 ssh localhost 一开始还不错。但是当我尝试通过生成 ssh 密钥并附加到 authorized_keys 来无密码登录时,我得到了

Connection to localhost closed by remote host
Connection to localhost closed.

此外,我将服务器的 public 密钥复制到我的 PC 并附加到 authorized_keys 文件。我成功从服务器无密码登录PC

另一方面,无论有没有密码,从PC到服务器的SSH连接都失败了。我遇到了同样的失败:

Connection closed by 192.168.0.52

其中192.168.0.52是服务器的IP地址。

更让我困惑的是,当我使用 putty 而不是 ssh 命令从 PC 连接到服务器时,我可以使用密码登录到服务器。

总而言之,我希望这张图能让问题更清楚: ssh connection graph

我希望任何人都可以帮助我找出问题所在以及如何解决。非常感谢!

在尝试了几个世纪之后,我终于找到了发生了什么。当我在服务器上建立sshd服务时,我没有创建一个特权帐户(默认为'cyg_server'),我在我的PC上创建了但我忘记了。相反,我使用当前帐户进行日志记录。然而,windows 上的帐户,甚至是管理员,并不像 Linux 上的 root 那样拥有所有权限。考虑到这一点,Cygwin 很贴心地创建了一个名为 'cyg_server' 的特权帐户,我们只管保留它并使用当前帐户登录。一切都好!

同样,f**k windows(那我为什么要在 windows 上做那件事。好吧,如果可以的话,我会的)