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

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

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

   大家有时候会发现 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,062)
  2. 在ssh服务里使用chroot (阅读 5,841)
  3. 为什么要用公钥/私钥而不是密码去做SSH身份验证 (阅读 5,701)
  4. 如何让ssh登录更加安全 (阅读 5,602)
  5. ssh连接超时解决办法 (阅读 5,503)
  6. 懒人连ssh不输密码若干大法 (阅读 5,481)
  7. SSH无密码登录 (阅读 5,481)
  8. ssh命令 (阅读 5,223)
  9. 共享会话的ssh连接配置 (阅读 4,702)
  10. 一句话crontab实现防ssh暴力破解 (阅读 4,564)