Ubuntu 10.04上的Autossh启动 – 关机后失败

我使用暴发户保持反向ssh隧道使用类似于使用Upstartpipe理AutoSSH反向隧道自动ssh活着。

这工作正常,除了手动关机后,我不能再通过使用隧道的“中央服务器”连接到本机。 我收到“ssh_exchange_identification:由远程主机closures的连接”。 autossh进程正在客户端上运行。 重新启动networking后,我可以再次连接。

我试图找出为什么这是手动关机后一贯失败。 是否有可能需要在启动时进行一些清理,以使隧道能够在这种情况下工作,或者是否有其他一些debugging/故障排除步骤可以用来确定问题?

机器A是使用autossh的客户端机器。 这台机器位于防火墙之后,并在暴发户中使用以下命令创build一个ssh隧道:

/usr/bin/autossh -fN -i /keyfile -o StrictHostKeyChecking=no -R 20098:localhost:22 user@centralserver 

机器B我们称之为“中央服务器”,它位于云端,是主机。 这个机器在上面的命令中是“centralserver”。

当机器A断电并重新启动时,无法通过从机器(C)到云机器B的SSH连接,然后使用以下命令进入机器A:

 ssh -p 2098 user@localhost 

再次,客户端(A)重新启动后,这工作正常。 只有在断电后才会出现问题。 在客户端机器(A)上运行了autossh进程,然后关机并重新启动,但是他们似乎没有做好自己的工作。

当然,当运行autossh的客户端没有正常closures时,ssh实例仍然存在于服务器上。 要解决此问题,请尝试杀死这些实例。 我用killall -u ,它的工作原理。 之后,autossh重新连接到服务器成功,我可以通过SSH连接到客户端。 在运行AUTOSSH_GATETIME=0的客户端上,我也设置了参数AUTOSSH_GATETIME=0

问题是系统没有正常closures。 我安装了acpid ,在/ etc / acpi中添加了一个powerbtn.sh脚本,当按下电源button时,该脚本调用shutdown。

我发现这个教程有用和直截了当:

http://jiang925.com/content/tunnel-through-firewall-using-reverse-ssh-and-vpn-dd-wrt

他们将autossh命令添加到/etc/rc.local,以便在启动时执行。