保留 ssh 会话

保留 ssh 会话

我在用MacBook开发客户端应用程序。

我想访问服务器日志,所以我打开了一个 shell 终端并建立了到服务器的 ssh 连接,并通过执行访问那里的日志文件

tail -f server.log

它可以工作,但是远程 ssh 会话将在一定时间后过期,这需要我再次建立 ssh 连接并再次访问服务器日志文件。

如何才能一直保持远程会话不过期呢?

答案1

如果日志文件有稳定的数据流并且连接断开,则原因是 A. 您的防火墙有最大 tcp 会话时间。 B. 发生某种重置,例如 wifi 出现问题。

如果你控制两边,你可以安装mosh:http://mosh.mit.edu/即使您更改 IP 或让计算机进入睡眠状态,它也会重新连接。

另一方面,如果数据流有长时间的暂停,那么您可能会达到最大空闲超时。您可以将其添加到 ~/.ssh/config

Host *
        TCPKeepAlive yes

答案2

尝试按照 Georgyo 的答案建议的 SSH 配置。如果这不起作用,您可能会遇到某个地方的防火墙施加的某种连接时间限制。如果是这种情况,并且您无法消除超时,您可以尝试使用 screen 之类的东西来保持进程运行,即使您的 ssh 会话断开连接也是如此。无论如何,我几乎所有事情都使用 BYOBU。

相关内容