终止无响应的 ssh 会话而不关闭终端

终止无响应的 ssh 会话而不关闭终端

有没有办法在不终止整个终端的情况下断开与无响应的 SSH 会话的连接?具体来说,我正在使用 konsole,我正在使用的机器有时会挂起,但实际上并没有死掉(从而终止连接)。因此 SSH 挂起,我必须关闭终端并打开一个新终端才能尝试通过 ssh 重新连接到该终端或执行其他操作。有没有办法有效地按 ctrl+c 退出 ssh 会话?

答案1

一种方法是使用 ssh 转义字符。默认情况下这是“~”,但可以-e在调用 ssh 时使用选项手动设置或通过EscapeCharssh 配置中的选项进行设置。要终止挂起的会话,通常可以使用以下方法:

~.

正如 Gilles 所指出的,只有在击中之后才能立即识别这一点Enter

答案2

只是澄清一下,希望这对新人有所帮助。

  1. Enter

  2. ~(这是美式布局键盘上的shift+ )`

  3. .

光标将返回到本地提示符。

答案3

如果您想终止所有活动的 ssh 会话,可以使用此命令(假设只有 ssh 连接到端口 22):

kill `sudo lsof -Pni :22 | tail -n1 | grep -wv sshd | awk '{print $2}'`

此命令查找连接在端口 22 上的所有进程,删除命令输出的标语lsof,忽略 ssh 守护进程并获取所有 PID,然后终止这些 PID。

相关内容