>> If I've not take too much of your time already. How do you recommend that I reject a shell? At the moment, I just threw an Unchecked exception - it works, but I'm not sure if I should do something else for 'niceness' sake.
There might be something "nicer" - off the top my head though nothing special comes to mind. I think that simply throwing an exception works just fine - don't look for "nicer" ways until someone complains or you reach the decision that it is somehow necessary. If you do reach the decision to be "nicer" try reading the relevant RFC regarding shell channels(https://tools.ietf.org/html/rfc4254#section-6.5) and see how you can respond within the described protocol - although I believe that if you throw an exception it is already taken care of by SSHD code...