如何摆脱已崩溃的 SSH 会话?

如何摆脱已崩溃的 SSH 会话?

很多时候,我的 SSH 会话不再响应(例如,当我失去互联网连接然后重新连接时)。Ctrl+ CCtrl+ DCtrl+Z和无数次按键没有任何效果。

大多数时候我已经拥有tmuxbyobu已经运行,所以我可以启动另一个终端并重新连接。不过确实感觉很麻烦。如何断开 SSH 与当前终端的连接?

答案1

使用“转义字符”(通常是波形符~)来控制 SSH 会话:

  • ~然后.关闭 SSH 连接;
  • ~后面跟Ctrl+Z暂停 SSH 进程;
  • ~随后另一个~发送文字~

-e您可以使用选项 设置转义字符SSH

另外,请记住

您还应该记得Enter先按~。当转义字符是行中的第一个字符时,它起作用。您还可以使用~和 来?从 ssh 客户端获取帮助。 (感谢评论者卢卡斯·施泰尔马赫.)

答案2

Openssh 可以配置为向另一端发送客户端或服务器活动消息。如果没有得到响应,连接将被终止。从服务器端,查看ClientAliveIntervalClientAliveCountMax配置选项。从客户端,查看ServerAliveIntervalServerAliveCountMax选项。TCPKeepAlive也是一个选项,但可以欺骗,而以前的选项则不然,所以它们可能更好。

如果将这些设置为合理的值,您可能永远不会再遇到连接挂起的情况。唯一的缺点是,出于安全原因,如果您希望 ssh 连接终止,您的 ssh 连接可能会保持打开状态。

请参阅OpenSSH sshd 配置手册页OpenSSH ssh 配置手册页欲了解更多信息。

答案3

尝试Ctrl+Break

相关内容