SSH 在承诺时冻结:网络

SSH 在承诺时冻结:网络

我设置了无密码 ssh 登录。我可以通过 ssh 连接,也可以使用 sftp。突然间,我无法再连接,ssh 冻结了。

  • 服务器:Ubuntu 16.04
  • 客户端:Ubuntu 18.04

ssh --vvv user@host冻结于承诺:网络

...
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug2: input_userauth_pk_ok: fp SHA256:w7sj+s08FJPpL09IVtmXmGZOUgxVHGcgpjCL3vxzSaQ
debug3: sign_and_send_pubkey: RSA SHA256:w7sj+s08FJPpL09IVtmXmGZOUgxVHGcgpjCL3vxzSaQ
debug3: send packet: type 50
debug3: receive packet: type 52
debug1: Authentication succeeded (publickey).
Authenticated to <host> ([<IP>]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug3: send packet: type 90
debug1: Requesting [email protected]
debug3: send packet: type 80
debug1: Entering interactive session.
debug1: pledge: network
debug3: send packet: type 80
debug3: send packet: type 80
debug3: send packet: type 80
Timeout, server <host> not responding.

在发生这种情况之前,我在同一主机上以同一用户启动了另一个 ssh,并且它在 sign_and_send_pubkey 处冻结,因此我启动了之前提到的 ssh。

...
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug2: input_userauth_pk_ok: fp SHA256:w7sj+s08FJPpL09IVtmXmGZOUgxVHGcgpjCL3vxzSaQ
debug3: sign_and_send_pubkey: RSA SHA256:w7sj+s08FJPpL09IVtmXmGZOUgxVHGcgpjCL3vxzSaQ
debug3: send packet: type 50
Connection to <IP> port 22 timed out
  • 我尝试从服务器重新安装 openssh-server 并从客户端重新安装 ssh。还重新启动了它们两个(服务器和客户端计算机)。

  • 还尝试强制通过密码连接。它只是改变了Authentication succeeded (password)输出的行。

  • 有人说设置了UsePAM no,但是没有用。

  • 已尝试-o IPQoS=0并得到相同的输出。

在服务器上记录这些系统日志

...
May  7 07:26:10 host systemd[1]: Started Session c103 of user <user>.
May  7 07:26:10 host systemd[1]: Started Session c104 of user <user>.
May  7 07:26:26 host systemd[1]: Started Session 47 of user <user>.
May  7 07:26:33 host systemd[1]: Started Session 48 of user <user>.

我认为这个问题出在客户端。因为我的朋友可以从他自己的电脑连接到服务器。

答案1

要调试您的 SSH 连接,最好查看/var/log/auth.log

IE

sudo tail -n 250 -f /var/log/auth.log

您的连接可能还会被诸如 之类的工具过滤或阻止fail2ban

检查它是否在你的服务器上运行:

sudo ps ax | grep fail2ban

如果它存在于您的服务器上,那么默认情况下它会扫描 auth.log 查找失败的登录尝试并禁止 IP 5 分钟。

如果您没有 fail2ban,请确保您的网络或防火墙没有问题。

用于dmesg读取最新错误:

sudo dmesg -T

使用以下命令查看你的 iptables 规则:

sudo iptables -nvL

并检查接口是否存在错误和溢出:

sudo ifconfig | grep 错误

ifconfig是 net-tools 的一部分,因此请确保它存在于你的 Ubuntu 上

sudo apt 安装 net-tools

答案2

在我的情况下,原因是 rsyslogd 崩溃了。我发现这是因为 /var/log/secure 中没有更多日志条目

因此我重新启动了服务 rsyslog restart,为我们解决了这个问题。

相关内容