How to Kill An Unresponsive SSH Session [Quick Tips]

If you have login to a remote SSH session before, you will know that there are times where the SSH session become unresponsive. it could be due to a break in the Internet connection, or that you were away and the session timeout. Whatever the reason is, when the SSH session becomes unresponsive, all the usual shortcut keys (Ctrl +Z, Ctrl + C, ESC) will fail to work. So how do we kill an unresponsive SSH session (other than closing the terminal window)?

The trick is easy. You just have to press “Enter”, follow by “~.” (a tilda and a dot, without the quotes). The “~” shortcut is an escape character and the dot represents a disconnection. So the “~.” combination allows you to close the SSH session.

Other escape characters you can use include:

  • ~.: Disconnect.
  • ~^Z: Background ssh.
  • ~#: List forwarded connections.
  • ~&: Background ssh at logout when waiting for forwarded connection / X11 sessions to terminate.
  • ~?: Display a list of escape characters.
  • ~B: Send a BREAK to the remote system (only useful for SSH protocol version 2 and if the peer supports it).
  • ~C: Open command line. Currently this allows the addition of port forwardings using the -L, -R and -D options (see above). It also allows the cancellation of existing remote port-forwardings using -KR[bind_address:]port. !command allows the user to execute a local command if the PermitLocalCommand option is enabled in ssh_config(5). Basic help is available, using the -h option.
  • ~R: Request rekeying of the connection (only useful for SSH protocol version 2 and if the peer supports it).