![每次断开连接时,xterms 中的 ssh 会话都会冻结几分钟](https://linux22.com/image/1240634/%E6%AF%8F%E6%AC%A1%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E6%97%B6%EF%BC%8Cxterms%20%E4%B8%AD%E7%9A%84%20ssh%20%E4%BC%9A%E8%AF%9D%E9%83%BD%E4%BC%9A%E5%86%BB%E7%BB%93%E5%87%A0%E5%88%86%E9%92%9F.png)
如果我通过 ssh 连接到远程计算机,然后失去互联网连接,会话就会冻结。我无法使用 control-c 或以其他方式中止并返回到本地 xterm 或终端提示符,但如果我等待几分钟,它就会这样做。当连接丢失时,一定有某种方法可以强制它中止远程 ssh 会话。我在 Mac 上,但我相信这种情况也会发生在 cygwin 或 linux 上。
答案1
波浪号应该可以满足您的要求(~.
)。它必须是按回车键后输入的第一项,因此请按回车键,然后输入它。以下是 ssh 的手动输入:
-e escape_char
Sets the escape character for sessions with a pty (default: ‘~’).
The escape character is only recognized at the beginning of a
line. The escape character followed by a dot (‘.’) closes the
connection; followed by control-Z suspends the connection; and
followed by itself sends the escape character once. Setting the
character to “none” disables any escapes and makes the session
fully transparent.
ctrl-d 也许也有效。
编辑:SSH 内置了许多转义字符命令。打开活动的 SSH 会话后,您可以按 [enter]~? 查看选项列表。这些都在 ssh 的 man 条目中。如果您还不了解 man 条目……您将发现一个令人惊奇的世界!在 Linux 终端中输入“man command”,在本例中输入“man ssh”,不带引号。它包含大量信息。按“q”退出。如果您更喜欢信息界面,也可以输入“info ssh”。
答案2
某些东西使连接保持打开状态,可能是某种转发。您可以尝试使用Ctrl\强制 ssh 停止,但一般来说,您应该尝试找出是什么使它保持打开状态。