How can I prevent an SSH session from hanging in OS X Terminal? When I close my MacBook with an active SSH session in Terminal and then wake it up,  the prompt goes unresponsive.

In about five minutes it says


  Write failed: Broken pipe


and terminates.

This also happens when I don't type anything in the Terminal in about fifteen minutes.

Can I force OS X to:


Keep SSH connection alive for longest time possible
Kill it immediately once it becomes unresponsive


?
For keeping the connection alive, you can check in /etc/ssh/ssh_config the line where it says ServerAliveInterval, that tells you how often (in seconds) your computer is gonna send a null packet to keep the connection alive. If you have a 0 in there that indicates that your computer is not trying to keep the connection alive (it is disabled), otherwise it tells you how often (in seconds) it is sending the aforementioned packet. Try putting in 120 or 240, if it is still killing your connection, you can go lower, maybe to 5, if with that number it doesn't happen, maybe it is your router who is dumping the connection to free memory.

For killing it when it gets hang up, you can use the ssh escape character:

~.


That is, press the tilde and then the period, if it doesn't work, press Enter before you press that, that will kill the connection immediately.