【问题标题】:SSH: Connection closed by remote serverSSH:远程服务器关闭连接
【发布时间】:2013-08-09 20:48:03
【问题描述】:

我正在尝试 ssh 登录到我的远程服务器。但是每当我尝试使用 ssh 命令通过终端登录时:

  ssh root@{ip_address}

我得到错误:

 Connection closed by {ip_address}

我检查了主机拒绝和主机允许,文件中没有任何内容。我不明白为什么会这样?

这发生在我更换工作站并更换密钥时。当我尝试 ssh 登录时,它要求添加密钥,我输入是,然后它关闭了连接。

有什么方法可以重新连接 ssh 吗?

感谢您的帮助。

谢谢。

编辑:

ssh -v -v -v -v root@{ip_address} 的输出是

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to {ip_address} [{ip_address}] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/mona/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/mona/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/mona/.ssh/id_rsa-cert type -1
debug1: identity file /home/mona/.ssh/id_dsa type -1
debug1: identity file /home/mona/.ssh/id_dsa-cert type -1
debug1: identity file /home/mona/.ssh/id_ecdsa type -1
debug1: identity file /home/mona/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug2: fd 3 setting O_NONBLOCK
debug3: load_hostkeys: loading entries for host "{ip_address}" from file "/home/mona/.ssh/known_hosts"
debug3: load_hostkeys: loaded 0 keys
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 151.236.220.15

【问题讨论】:

  • 请将ssh -v -v -v -v root@{ip_address}的输出发送给我们
  • @IwanAucamp 嘿写了有问题的输出。谢谢。
  • 来自手册页:Multiple -v options increase the verbosity. The maximum is 3.

标签: ssh openssh


【解决方案1】:

有同样的问题,但简单的远程服务器重启有帮助。

【讨论】:

  • 这有帮助。重启ssh服务大概够了吧?
  • 我不知道为什么。可能发生了一些损坏的 SSH 服务器状态。
【解决方案2】:

您确定您的服务器允许通过 SSH 登录吗? 如果没有,我建议使用具有sudo 权限的其他帐户而不是启用 root 登录 - 特别是如果服务器的 SSH 端口可以从整个内网访问。

【讨论】:

  • 对 root 用户的好建议——我用 myuser@ 隐式替换了 root@,这正是我想要的。我很困惑为什么客户端上的 ssh 解决了服务器关闭套接字的问题。
【解决方案3】:

在我的一个 SSH 连接上,我遇到了同样的“连接被 {ip_address} 关闭”错误。我尝试了所有常用的解决方案,但没有任何效果。最后发现主机上的~/.ssh/authorized_keys文件损坏了。有人试图在文件中附加一个密钥,但他们复制并粘贴了嵌入的换行符,每行都在末尾换行。所以应该是一个跨越三行的连续字符串实际上是三个单独的字符串——每行一个。由于嵌入的换行符恰好位于行尾,因此从外观上看并不明显。

我删除了有问题的键并添加了自己的键。然后一切都按预期进行。

【讨论】:

  • 我也是。我的客户端密钥有问题。删除它们有帮助。
【解决方案4】:

试试 sudo ssh root@{ip_address},它对我有用。

【讨论】:

  • 虽然这个答案没有提供任何关于它为什么起作用的理由,但它确实解决了导致 OP 出错的一个潜在原因,事实上,当我遇到这个问题时,它也解决了我的问题:如果您尝试通过某些不允许或不存在的用户帐户进行连接,但允许root,则可以解决此问题。更通用的解决方案更简单:使用存在并配置为 SSH 的用户帐户。
  • 如何配置 ssh 帐号以便连接?
  • 这是一个糟糕的答案,您不需要 sudo 来通过 ssh 进行连接
【解决方案5】:

我尝试与/etc/passwd 中有:/bin/false 的用户建立联系。将其更改为:/bin/bash 后,连接不再关闭。

【讨论】:

    【解决方案6】:

    我自己在使用 cloud9 编辑器时也遇到了同样的问题。我的原因是 CPU 使用率高。停止apache连接后就好了。

    【讨论】:

      【解决方案7】:

      检查用于连接到 ftp 站点的名称,它的名称是否错误或正在发送多个名称以进行身份​​验证。

      【讨论】:

        【解决方案8】:

        我有一个类似的问题,通过使用以下命令降低客户端的 MTU 得到了解决: ip li set mtu 1400 dev eth0

        我从serverfault 上的单独线程中找到了此解决方案。

        【讨论】: