When an SSH connection dies, either by the server ending the session, or a connectivity problem, the "checkAlive()" method fails to identify sessions that are no longer connected.
At present it does this check
However, sending a keep alive message doesn't appear to cause an exception on a dead connection.
I found that if you actually check that the session is connected and then throw an exception if it isn't it is able to reconnect and use a working connection.
I found the easiest way to test this is on the SSH server, simply kill the ssh connection for the user, and then try running a test or a search even, and it should fail.
After the above fix it transparently reconnects and starts working again.