IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

如何的退出无响应的 SSH 连接

vpsee.com 2013-10-08 12:16:34 累计浏览 2,006 次

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

   我常遇到或者说每天都遇到的情形是,离开办公桌前忘了退出 ssh 会话。工作的时候长时间 ssh 到服务器上,工作完盖上 Mac 走人,回家后发现那些没退出的 ssh 会话还挂在那里,无法退出、无法 Ctrl+C、无法做任何操作。我的粗暴做法通常是直接关闭 Terminal 后重新开一个新的;如果用的不是图形系统,没有窗口可以关闭,那还要启用另一个终端找到相关进程后 kill 掉,如果每天都要搞这么几次还是挺烦人的。今天无意中从同事那里学到了一个小技巧,在那些没退出的 ssh 会话里用 ~. “优雅” 的断开连接。

~.

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

$ man ssh
...
ESCAPE CHARACTERS
     ...

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

     ~.      Disconnect.

建议继续学习

  1. Linux shell脚本使用while循环执行ssh的注意事项 (累计阅读 8,068)
  2. 在ssh服务里使用chroot (累计阅读 5,845)
  3. 为什么要用公钥/私钥而不是密码去做SSH身份验证 (累计阅读 5,708)
  4. 如何让ssh登录更加安全 (累计阅读 5,609)
  5. ssh连接超时解决办法 (累计阅读 5,512)
  6. 懒人连ssh不输密码若干大法 (累计阅读 5,488)
  7. SSH无密码登录 (累计阅读 5,485)
  8. ssh命令 (累计阅读 5,232)
  9. 共享会话的ssh连接配置 (累计阅读 4,710)
  10. 一句话crontab实现防ssh暴力破解 (累计阅读 4,572)