Sometime my ssh session just stops working because of the internet connection problem. I tried pressing CTRL+Z and CTRL+C to terminate session, but failed to work. How do I properly kill a hung SSH session without killing my local terminal or using kill command?
From the ssh man page:
When a pseudo-terminal has been requested, ssh supports a number of functions through the use of an escape character. A single tilde character can be sent as ~~ or by following the tilde by a character other than those described below. The escape character must always follow a newline to be interpreted as special. The supported escapes (assuming the default â€˜~â€™) are:
So all you’ve to do is press [Enter] key followed by ~.. Please note that escapes are only recognized immediately after newline.
Ssh ESCAPE CHARACTERS List
~. 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).
- man page ssh (see ESCAPE CHARACTERS section).