如何启动远程命令行会话?

如何启动远程命令行会话?

我使用putty通过ssh登录服务器。这会在本地创建一个会话;这意味着如果我断开与腻子的连接,会话就会丢失。

有没有什么方法可以让会话保持运行并可以从 putty 或任何其他客户端访问?或者有其他协议或工具可以帮助解决这个问题吗?

答案1

工具屏幕是可以帮助您的工具。它执行一个新的 shell。当终端断开连接时,这个新 shell 不会被杀死,并且可以在重新连接后附加到这个 shell。跨终端连接保持会话的用法很简单。启动新会话类型

 $ screen

现在您可以终止腻子了。当您重新连接时,您可以附加到现有会话

$ screen -r

实际上屏幕能够做更多的事情。看https://www.gnu.org/software/screen/manual/screen.html

答案2

如果您确实想防止本地与 putty 断开连接以防止 ssh 连接丢失,您可以在 cygwin 下安装tmux(或screen) 并从那里启动 putty。这允许您从 putty 断开连接(通过从 断开连接tmux)并在重新连接后继续使用现有ssh连接(到 tmux`)。这假设您可以从命令行启动 putty。如果没有,您应该使用可以的 ssh 客户端。

这并不能防止ssh发生连接断开的情况,因此请确保您至少设置了TCPKeepAlive一个合理的ServerAliveInterval.

此外,我将tmux在服务器端运行,以便您可以在连接断开后重新连接到命令行程序(shell 或您正在运行的任何程序),尽管采取了其他预防措施(网络断开等)。后者可能足以满足您的需求,因为它允许重新连接到服务器上的会话。 putty 的本地会话以及维护 ssh 连接(无论如何都不能保证)通常不太有趣。

相关内容