天天看点

使用 “~.” 退出无响应的 SSH 连接

大家有时候会发现 ssh 挂在那里没有响应了,可能是客户端的问题,也可能是服务器端的问题,也可能是客户端和服务器之间的网络问题;可能是客户端电脑休眠后连接断了、可能是网络断了、可能是 wifi 信号不好、可能是网络延迟大了、可能是服务器挂了、也可能是服务器上的 sshd 进程挂了,…,可能是技术问题,也可能是非技术问题,可以找出无数可能。

我常遇到或者说每天都遇到的情形是,离开办公桌前忘了退出 ssh 会话。工作的时候长时间 ssh 到服务器上,工作完盖上 mac 走人,回家后发现那些没退出的 ssh 会话还挂在那里,无法退出、无法 ctrl+c、无法做任何操作。

我的粗暴做法通常是直接关闭 terminal 后重新开一个新的;如果用的不是图形系统,没有窗口可以关闭,那还要启用另一个终端找到相关进程后 kill 掉,如果每天都要搞这么几次还是挺烦人的。

使用 “~.” 退出无响应的 SSH 连接

今天无意中从同事那里学到了一个小技巧,在那些没退出的 ssh 会话里用 <code>~.</code> “优雅” 的断开连接。

查看一下 man 帮助文件发现已经有说明,惭愧的是用了这么多年 ssh 才发现有这么一招:

<code>$ man ssh</code>

<code>...</code>

<code>escape characters</code>

<code></code>

<code>the supported escapes (assuming the default `~') are:</code>

<code>~. disconnect.</code>

 原文发布时间为:2013-08-11

本文来自云栖社区合作伙伴“linux中国”

继续阅读