云服务器重build后,为什么SSH给我一个ssh_exchange_identification错误?

我们最近不得不重build一个我们的云服务器(我们使用Rackspace)。 所有服务器几乎完全相同,并使用另一台服务器的快照。 一旦再次生活,我允许一个cron作业运行,使用Unison将源控制之外的一些文件从原始服务器同步到最近重build的服务器。 从本质上说,这个SSH和比较两者之间的文件,然后复制两台机器之间的/删除/任何文件。

但是,自重build以来,我收到来自Cron Daemon的电子邮件,给了我以下错误:

ssh_exchange_identification: read: Connection reset by peer Fatal error: Lost connection with the server 

这里奇怪的是,如果我login作为cron作业下运行相同的用户和SSH到同一台服务器(使用相同的密钥进行身份validation),我没有看到任何错误。 此外,如果我从命令行手动运行Unison,我看不出错误。 更重要的是,如果我closuresUnison的静音模式,那么成功的Unison批处理作业的输出会显示在控制台中,而这个相同的输出会显示在电子邮件中,但是每当cron作业时我仍然会收到其他几个错误运行。

我已经检查了id_rsa / id_rsa.pub键,authorized_keys等的权限和内容,而且看起来很好。

任何人都可以build议为什么这可能突然开始发生? 它似乎同步正在工作,但我收到几个电子邮件,每次运行该错误。

“通过对等方重置连接”意味着对端(即本例中的SSH服务器)exceptionclosuresTCPstream。 一种可能发生的方式是远程进程崩溃。

“ssh_exchange_identification”表示服务器和客户端正在交换在连接的每一端标识SSH软件的横幅string。 当TCP连接closures时,客户端正在等待服务器发送其标题string。

如果可以,您确实需要在服务器上进行故障排除。 尝试find一种方法来重现问题。 然后,在服务器上,假设服务器运行openssh,您可以运行:

 /path/to/sshd -d -p 1022 

这将开始侦听端口1022上的sshd的debugging副本。它将接受来自客户端的单个连接,并打印debugging输出。 如果在连接到此sshd实例时可以重现问题,则debugging消息应该清楚发生了什么。