在备份脚本中使用 rsync 时出现间歇性 ssh_exchange_identification 错误,为什么?

在备份脚本中使用 rsync 时出现间歇性 ssh_exchange_identification 错误,为什么?

我有一个在本地使用的备份系统rdiff-backup,然后使用rsync.我的 rsync 命令如下所示:

rsync -aP --delete-after /mnt/reos-storage-2/data_upload_backup/ [email protected]:/mnt/reos-storage-2/data_upload_backup_ed-mh-pi01

偶尔导致以下错误,并且我的备份未复制到远程计算机。

ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]

我调查了这个ssh_exchange_identification错误,发现它可能是由于几个原因造成的,最主要的一个是 ssh 连接太多。然而,在运行时,任何一台机器上都不应该有其他活动的 ssh 连接,或者最多一个或两个其他连接。本例中的“源”计算机是运行 Raspian 的树莓派,而“目标”服务器是 Ubuntu 20.04。我想知道 rsync 是否会创建大量连接?

我该如何调试这个?导致错误的可能原因有哪些?

答案1

由于错误消息显示“连接被远程主机关闭”,因此您应该查看远程主机的日志:应该有一条日志消息sshd准确描述了它决定终止连接的原因。由于身份验证尚未完成,因此sshd不会向客户端报告终止原因,此时仍未经过身份验证,并且可能是恶意的。向可能的攻击者提供有关如何通过您的安全措施的建议不是很明智,不是吗?

恶意 ssh 登录尝试的过载也可能(取决于内核和sshd版本,以及系统可用的熵/随机性来源)导致问题,通常会耗尽内核的熵池,使系统无法为以下内容生成加密安全的随机数:会话密钥足够快。

相关内容