如何退出无响应的 SSH 连接

经常出现ssh连接由于网络问题,“卡住”了。不能进行任何操作,也不能退出。

ssh文档里面也有写通过~.来断开ssh连接:

$ man ssh
...
ESCAPE CHARACTERS
     ...

     The supported escapes (assuming the default `~') are:

     ~.      Disconnect.

     ~?      Display a list of escape characters.

但是,实际使用过程中发现,按了没有反应。

后来看了其他人的做法,发现两个技巧:

  1. ssh转义字符,只有在新行生效。所以最保险的按键方式是:回车 -> Shift+` -> .
  2. 由于输入两个~会导致ssh直接发送~。比如我们按~~~. 会关闭第二层ssh,而不是当前失去响应的ssh会话。

所以为了保险起见,我的操作是这样子的:

回车~?,直到出现ssh的转义字符帮助(没有出现就继续按回车~?

然后按 ~.

退出ssh


~~~. 会关闭第二层ssh,对吗?

  1. ~~是给第一层ssh会话发送~字符
  2. ~~~是给第二层ssh会话发送~字符
  3. ~~~.是给第二层ssh会话发送~.字符,即关闭第二层ssh会话

参考资料:

Leave a Reply

Your email address will not be published. Required fields are marked *