我有一个我无法找到答案的问题。我有两台电脑,都运行 Ubuntu 12.04。我将一台计算机放在家里,并使用 SSH 从另一台(“远程”)计算机连接到它。远程计算机能够毫无问题地连接到家用计算机。远程计算机还在 /etc/ssh/ssh_config 中将 SetAliveInterval 设置为 60,这样即使我暂时离开计算机也不会断开连接。
有时,我的远程计算机上的互联网连接会中断。Internet 中断导致我的 SSH 隧道关闭(当然)。但是,当我恢复 Internet 连接并使用新的 SSH 隧道重新连接到家用计算机时,我可以看到使用#ps ax
旧的 SSH 连接过程仍在运行。这是一个问题,因为我在家用计算机上使用了一个加密的主目录,它不允许文件被重新加密,直到(现在已经死了)SSH 连接被终止。
有没有办法在家用计算机上设置 sshd_config 以便它自动检测连接何时终止并终止它?
小智 5
尝试screen或tmux。在服务器端,或双方,如果你喜欢:
sudo apt-get install tmux
Run Code Online (Sandbox Code Playgroud)
登录后,启动tmux。
tmux
Run Code Online (Sandbox Code Playgroud)
如果连接中断,请通过ssh再次登录并重新连接tmux会话。要发现会话号:
tmux ls
Run Code Online (Sandbox Code Playgroud)
输出可能是这样的:
0:1 个窗口(创建于 2012 年 12 月 25 日星期二 19:20:40)
像这样连接到tmux编号的会话:
tmux attach -t 0
Run Code Online (Sandbox Code Playgroud)
然后你又回到了你离开的地方。您不必终止会话。他们只是在等待您的下一次访问。或者,如果您只想终止会话...
在服务器端,请参阅ClientAliveInterval和ClientAliveCountMax的/etc/ssh/sshd_config
设置。( )man 5 ssh_config
ClientAliveInterval 300
ClientAliveCountMax 0
Run Code Online (Sandbox Code Playgroud)
将它们更改为您的首选项后,重新启动 SSH 服务器。
sudo /etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)
300 是秒(五分钟)。
归档时间: |
|
查看次数: |
2350 次 |
最近记录: |