【问题标题】:Connection closed by ::1 error in cygwin [closed]cygwin中的::1错误关闭了连接[关闭]
【发布时间】:2016-08-25 19:47:49
【问题描述】:

我正在尝试使用 cygwin 进行 ssh 连接。我已按照here 的说明进行操作。当我触发ssh localhost 命令时,我得到Connection closed by ::1 错误。由于我是 unix 和 cygwin 的新手,我无法弄清楚出了什么问题。请问谁能告诉我为什么会出现这个错误以及如何解决它?

我的 cygwin shell 如下所示:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Shekhar/.ssh/id_rsa):
/home/Shekhar/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/Shekhar/.ssh/id_rsa.
Your public key has been saved in /home/Shekhar/.ssh/id_rsa.pub.
The key fingerprint is:
85:69:77:cc:fd:21:8a:ce:fe:46:41:ee:c8:e7:3d:7b Shekhar@Shekhar-PC
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         o + .   |
|        + = +... |
|       . o.+. ...|
|        S.o..   .|
|        oo +     |
|         o+ .    |
|        .  o o E |
|         .o. .+  |
+-----------------+

Shekhar@Shekhar-PC ~
$ cd ~/.ssh/

Shekhar@Shekhar-PC ~/.ssh
$ ls -l
total 10
-rw-r--r-- 1 Shekhar None 1200 Jun 16 19:49 authorized_keys
-rw------- 1 Shekhar None 1675 Jun 20 08:55 id_rsa
-rw-r--r-- 1 Shekhar None  400 Jun 20 08:55 id_rsa.pub
-rw-r--r-- 1 Shekhar None  171 Jun  6 23:28 known_hosts

Shekhar@Shekhar-PC ~/.ssh
$ cat id_rsa.pub >> authorized_keys

Shekhar@Shekhar-PC ~/.ssh
$ ssh localhost
Connection closed by ::1

【问题讨论】:

  • 您确定有一个 SSH 服务器在监听 ::1 吗?如果您尝试ssh 127.0.0.1,它是否有效? (也许它只是在你的 IPv4 接口上监听,或者它根本没有在监听,或者个人防火墙阻止了它?)
  • 如何查看SSH服务器是否在监听?我已经通过控制面板 > 管理工具 > 服务启动了 cygwin ssh 服务
  • @Mike,我试过ssh 127.0.0.1,但得到了同样的错误。 connection closed by 127.0.0.1
  • 一种测试方法是telnet 到 SSH 端口,看看它是否打开。例如,我的 Linux 系统上的telnet localhost 22 连接然后打印SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7。我猜你甚至不会走那么远,这意味着 SSH 服务可能存在问题或有防火墙干扰。
  • @Mike,我的问题解决了。我刚刚删除了 cygwin 并重新安装了它,现在它以某种方式正常工作。

标签: ssh cygwin openssh


【解决方案1】:

我遇到了同样的问题。至少对我来说,问题是使用 ssh-host-config 创建 cyg_server 用户。它是在没有主目录的情况下创建的,并且它的 shell 设置为 /bin/false。因此,我更改了 cyg_server 用户的 /etc/passwd 文件以反映 /home/cyg_server(从 /var/empty 更改)和 /bin/false 到 /bin/bash,并为用户创建了主目录。尝试使用 cyg_server 用户重新连接,瞧。

简而言之:

mkdir /home/cyg_server
vim /etc/passwd
cyg_server:...(bunch of stuff)...:/var/empty:/bin/false

cyg_server:...(bunch of stuff)...:/home/cyg_server:/bin/bash

大概 cygwin 有一个 usermod 命令或同义词可以更安全一点。但我很不耐烦,这就是我所做的。如果有人遵循这一点,请注意在编辑 /etc/passwd 文件时要格外小心。

【讨论】:

  • 非常感谢 Sabosan 的回答:这也解决了我的问题 +1 :)
  • +1。完美运行。
  • 我必须这样做来解决 Op 的问题: chown /var/log/sshd.log chown -R /var/empty chown /etc/ssh* chmod 755 /var/empty chmod 644 /var/log/sshd.log
  • 我发现 /var/empty 的所有权正确设置为 cyg_server:Root。所以我没有更改 cyg_server 的主目录。相反,我只将 shell 从 /bin/false 更改为 /bin/bash 并且它运行良好。另一件事是用户应确保 cygwin 批处理文件以管理员权限运行。非常感谢。
  • 我遵循了建议并使用 cyg_server 登录,它就像一个魅力!谢谢!
【解决方案2】:

以防万一其他人发现同样的问题。由于您在配置 ssh 时选择了 cyg_server 作为用户名,因此请尝试使用“ssh cyg_server@localhost”命令而不是默认的“ssh localhost”进行连接。密码可以和你配置时提供的一样

【讨论】:

    【解决方案3】:

    把这个放在这里以防以后有人遇到这个问题。我遇到了同样的问题,重新安装 cygwin 解决了它......直到我重新启动。然后我又遇到了同样的错误。我现在第二次解决了这个问题:我没有使用 cygwin 在运行 ssh-host-config 时向我建议的帐户名称“cyg_server”,而是在 Windows 上输入了我的普通管理员帐户的名称。到目前为止似乎工作正常。

    【讨论】:

      【解决方案4】:

      我的问题解决了。我刚刚删除了 cygwin 并重新安装了它,现在它以某种方式正常工作。

      【讨论】:

      • 谁能解释下投票的原因?
      • 因为在小问题上重新安装操作系统不是一个好建议
      • 请在投票前仔细阅读答案。我重新安装了 Cygwin,我没有重新安装操作系统。
      • 是的,但你重新安装了 cygwin。这不是一个很好的建议。我用 OS 来举个例子。
      猜你喜欢
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多