SSH "kex_exchange_identification: read: Connection reset by peer"



设置:

  • Raspberry 3B在外部硬盘上运行Raspbian Stretch 9并使用ZRAM
  • Raspi用作运行LAMP和MERN堆栈的Web服务器,并通过SSH和1个IDE远程访问(适用于Mac OS的Coda(
  • 静态IP路由器转发的SSH端口
  • 故障2板运行

问题:

当通过SSH从远程位置(通过互联网(访问树莓时,它会一直工作到连接挂起。这种情况是随机发生的。我有时可以在几分钟后再次SSH,有时直到我重新启动Raspi。

我尝试过的:

  • SSH在详细模式下从远程位置:
debug1: Local version string SSH-2.0-OpenSSH_8.1
kex_exchange_identification: read: Connection reset by peer
  • 从本地网络以详细模式进行SSH(我实际上远程SSH本地网络上的另一台机器,然后从该机器SSH Raspi(相同结果:Connection reset by peer
  • 选中/etc/hosts.allow/etc/hosts.deny
  • 通过iptables -L --line-number检查iptables
  • 检查日志:/var/log/fail2ban.logsudo journalctl -t sshd
  • no DNS更新sshd_config
  • 通过apt-get --reinstall install openssh-server openssh-client重新安装SSH

我这里没有什么想法了,也不知道发生了什么。就像有人以前遇到过同样的SSH连接问题一样?这可能是树莓的负载问题吗?

长话短说,我的问题与网络问题无关,通过检查syslog解决了这个问题。

详细信息:

我注意到,在问题开始之前,没有一个网络应用程序(通过LAMP或MERN堆栈(在启动和运行时无法访问。

因此,我使用tail -f -n X /var/log/syslog命令挖掘了syslog(用要显示的行数替换X(。然后,我注意到有几行提到了电压问题(很抱歉,我保留了确切的术语(。但基本上,这意味着我的Raspi没有足够强大的电源。

然后,硬盘驱动器被卸载,系统崩溃,这就解释了上面提到的所有问题。

因此,我卸下硬盘,放回SD卡,再次运行Raspi,同时再次查看syslog并使用htop监控内存。事实证明,当我启动apache和node服务器时,RAM和SWAP内存已经满了,重复着上面提到的相同结果。

所以最后我使用ZRAM增加了SWAP内存。此处链接。

现在一切运行良好,但仍在监控中。

我没有看到安装了ufw(防火墙(。

ufw disable

(Or configure ufw.)

现在,端口可以按预期访问了。

我发现了另一个导致这种精确错误的场景。请确保在尝试使用ssh连接的主机系统上的/etc/ssh中检查OpenSSH生成的公钥/私钥文件的权限。这些密钥由SSH守护进程使用。

由于OpenSSH是跨平台的,这同样适用于任何运行SSHd的操作系统。这些文件必须具有适当的权限。

/etc/ssh是默认路径,但如果您使用的是Windows或其他操作系统,则可能会有所不同。但对于大多数Unix/Linux/macOS系统,它应该是/etc/ssh。

sudo chmod 600 *_key
sudo chmod 644 *.pub

您还应该验证SSH客户端是否对~/.SSH和公钥/私钥、config、authorized_keys等具有正确的权限。尽管如果这些都是错误的,您会立即被告知。但是,当SSH守护程序的密钥权限错误时,您会在日志中收到错误。

如果不是DNS也不是证书,那么它总是权限。

另一个出现错误的场景:kex_exchange_identification:read:对等方重置连接出现的是一个限制通过hosts.allow中ssh访问的配置,行如下:sshd: 192.168.178.12然后尝试从不同于上述IP的IP进行ssh。

我的脚现在需要医疗护理。。。。

最新更新