远程系统意外断开连接时,SSH进程未在远程计算机上终止


8

我有一个无法找到答案的问题。我有两台计算机,都运行Ubuntu 12.04。我将一台计算机放在家里,并使用SSH从另一台(“远程”)计算机连接到它。远程计算机能够毫无问题地连接到家用计算机。远程计算机还在/ etc / ssh / ssh_config中将SetAliveInterval设置为60,因此如果我离开计算机片刻,连接不会消失。

有时,我在远程计算机上的Internet连接被中断。Internet中断导致我的SSH隧道关闭(当然)。但是,当我恢复Internet连接并使用新的SSH隧道重新连接到家用计算机时,可以看到使用#ps ax旧的SSH连接过程仍在运行。这是一个问题,因为我在家用计算机上使用了一个加密的主目录,该目录不允许重新加密文件,直到该(现已失效的)SSH连接被终止。

有没有一种方法可以在家用计算机上设置sshd_config,以便它自动检测连接何时终止并终止连接?

Answers:


5

尝试使用screentmux。在服务器端,或者如果需要,在服务器端和服务器端:

sudo apt-get install tmux

登录后,启动tmux

tmux

如果连接断开,请通过ssh重新登录并重新连接tmux会话。要查找会话号:

tmux ls

输出可能是这样的:

0:1视窗(2012年12月25日星期二19:20:40创建)

像这样连接到tmux编号的会话:

tmux attach -t 0

然后,您就回到离开它的位置。您不必取消会话。他们只是等待您的下一次访问。或者,如果您只是想终止会话...

在服务器端,请参阅ClientAliveIntervalClientAliveCountMax/etc/ssh/sshd_config设置。()man 5 ssh_config

ClientAliveInterval 300
ClientAliveCountMax 0

将它们更改为您的首选项后,请重新启动SSH服务器。

sudo /etc/init.d/ssh restart

300是秒(五分钟)。


这正是我想要的!我将从ClientAliveInterval开始,并且肯定还会尝试tmux。谢谢!
JL

1
除了屏幕和TMUX第三个选项是屏风网站维基百科。来自网站:“它最初旨在为Ubuntu服务器发行版提供功能完善,实用的GNU Screen的优雅增强。Byobu现在包括增强的配置文件,便捷的键绑定,配置实用程序以及可切换的系统状态通知适用于GNU屏幕窗口管理器和更现代的Tmux终端多路复用器,并且可以在大多数Linux,BSD和Mac发行版上使用。”
sierrasdetandil

1

您可以尝试mosh安装莫什,它是在SSH之上构建的SSH的替代品。它支持漫游和间歇性连接,因此只要中断后重新建立Internet连接,您的Mosh(SSH)会话就会在您中断的地方继续。

您将需要在两台计算机上安装Mosh。

参考文献:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.